|
|
@@ -292,26 +292,43 @@ func DeleteEntity(executor Executor, tableName string, e any) error {
|
|
|
// 返回值:
|
|
|
// - 错误
|
|
|
func UpdateEntity(executor Executor, tableName string, e any) error {
|
|
|
+ _, err := UpdateEntityWithRowsAffected(executor, tableName, e)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
+// UpdateEntityWithRowsAffected 通过结构更新数据,返回影响行数
|
|
|
+// 参数:
|
|
|
+// - executor: 数据库基础设施接口
|
|
|
+// - tableName: 表名
|
|
|
+// - e: 结构,结构字段需要使用sqlmapping标注
|
|
|
+// 返回值:
|
|
|
+// - 影响行数
|
|
|
+// - 错误
|
|
|
+func UpdateEntityWithRowsAffected(executor Executor, tableName string, e any) (int64, error) {
|
|
|
if executor == nil {
|
|
|
- return errors.New("没有传递执行器")
|
|
|
+ return 0, errors.New("没有传递执行器")
|
|
|
}
|
|
|
|
|
|
if strutils.IsStringEmpty(tableName) {
|
|
|
- return errors.New("没有传递表名")
|
|
|
+ return 0, errors.New("没有传递表名")
|
|
|
}
|
|
|
|
|
|
if e == nil {
|
|
|
- return nil
|
|
|
+ return 0, nil
|
|
|
}
|
|
|
|
|
|
entityType := reflect.TypeOf(e)
|
|
|
if !reflectutils.IsTypeStructOrStructPointer(entityType) {
|
|
|
- return errors.New("实体参数不是结构或结构指针")
|
|
|
+ return 0, errors.New("实体参数不是结构或结构指针")
|
|
|
}
|
|
|
|
|
|
fields, err := sql_mapping.DefaultUsage(e)
|
|
|
if err != nil {
|
|
|
- return err
|
|
|
+ return 0, err
|
|
|
}
|
|
|
|
|
|
now := time.Now().Local()
|
|
|
@@ -358,19 +375,19 @@ func UpdateEntity(executor Executor, tableName string, e any) error {
|
|
|
|
|
|
executeParamsMap, err := executeParams.Map()
|
|
|
if err != nil {
|
|
|
- return err
|
|
|
+ return 0, err
|
|
|
}
|
|
|
|
|
|
args := make([]any, 0)
|
|
|
args = append(args, executeParams.TableRow.Values()...)
|
|
|
args = append(args, executeParams.Conditions.Args()...)
|
|
|
|
|
|
- _, _, err = executor.ExecuteRawSqlTemplateWithRowsAffected(sql.UpdateTpl, executeParamsMap, args...)
|
|
|
+ _, rowsAffected, err := executor.ExecuteRawSqlTemplateWithRowsAffected(sql.UpdateTpl, executeParamsMap, args...)
|
|
|
if err != nil {
|
|
|
- return err
|
|
|
+ return 0, err
|
|
|
}
|
|
|
|
|
|
- return nil
|
|
|
+ return rowsAffected, nil
|
|
|
}
|
|
|
|
|
|
// Insert 插入数据
|