|
|
@@ -1,6 +1,7 @@
|
|
|
package database
|
|
|
|
|
|
import (
|
|
|
+ "git.sxidc.com/go-framework/baize/infrastructure/database/sql"
|
|
|
"git.sxidc.com/go-framework/baize/tag/sql/sql_mapping"
|
|
|
"git.sxidc.com/go-tools/utils/reflectutils"
|
|
|
"git.sxidc.com/go-tools/utils/strutils"
|
|
|
@@ -11,8 +12,8 @@ import (
|
|
|
)
|
|
|
|
|
|
type Executor interface {
|
|
|
- ExecuteRawSql(sql string, executeParams map[string]any) ([]Result, error)
|
|
|
- ExecuteSql(name string, executeParams map[string]any) ([]Result, error)
|
|
|
+ ExecuteRawSql(sql string, executeParams map[string]any) ([]sql.Result, error)
|
|
|
+ ExecuteSql(name string, executeParams map[string]any) ([]sql.Result, error)
|
|
|
}
|
|
|
|
|
|
const (
|
|
|
@@ -43,7 +44,7 @@ func InsertEntity(executor Executor, tableName string, e any) error {
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
- executeParamsMap, err := InsertExecuteParams{
|
|
|
+ executeParamsMap, err := sql.InsertExecuteParams{
|
|
|
TableName: tableName,
|
|
|
TableRow: formInsertTableRow(fields),
|
|
|
}.Map()
|
|
|
@@ -51,7 +52,7 @@ func InsertEntity(executor Executor, tableName string, e any) error {
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
- _, err = executor.ExecuteRawSql(InsertTpl, executeParamsMap)
|
|
|
+ _, err = executor.ExecuteRawSql(sql.InsertTpl, executeParamsMap)
|
|
|
if err != nil {
|
|
|
if strings.Contains(err.Error(), "SQLSTATE 23505") {
|
|
|
return ErrDBRecordHasExist
|
|
|
@@ -72,7 +73,7 @@ func InsertEntityBatch(executor Executor, tableName string, es []any) error {
|
|
|
return fserr.New("没有传递表名")
|
|
|
}
|
|
|
|
|
|
- tableRowBatch := make([]TableRow, 0)
|
|
|
+ tableRowBatch := make([]sql.TableRow, 0)
|
|
|
|
|
|
for _, e := range es {
|
|
|
if e == nil {
|
|
|
@@ -92,7 +93,7 @@ func InsertEntityBatch(executor Executor, tableName string, es []any) error {
|
|
|
tableRowBatch = append(tableRowBatch, *formInsertTableRow(fields))
|
|
|
}
|
|
|
|
|
|
- executeParamsMap, err := InsertBatchExecuteParams{
|
|
|
+ executeParamsMap, err := sql.InsertBatchExecuteParams{
|
|
|
TableName: tableName,
|
|
|
TableRowBatch: tableRowBatch,
|
|
|
}.Map()
|
|
|
@@ -100,7 +101,7 @@ func InsertEntityBatch(executor Executor, tableName string, es []any) error {
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
- _, err = executor.ExecuteRawSql(InsertTpl, executeParamsMap)
|
|
|
+ _, err = executor.ExecuteRawSql(sql.InsertTpl, executeParamsMap)
|
|
|
if err != nil {
|
|
|
if strings.Contains(err.Error(), "SQLSTATE 23505") {
|
|
|
return ErrDBRecordHasExist
|
|
|
@@ -112,9 +113,9 @@ func InsertEntityBatch(executor Executor, tableName string, es []any) error {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
-func formInsertTableRow(fields []sql_mapping.Field) *TableRow {
|
|
|
+func formInsertTableRow(fields []sql_mapping.Field) *sql.TableRow {
|
|
|
now := time.Now().Local()
|
|
|
- tableRow := NewTableRow()
|
|
|
+ tableRow := sql.NewTableRow()
|
|
|
|
|
|
for _, field := range fields {
|
|
|
fieldValue := reflect.ValueOf(field.Value)
|
|
|
@@ -152,7 +153,7 @@ func DeleteEntity(executor Executor, tableName string, e any) error {
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
- conditions := NewConditions()
|
|
|
+ conditions := sql.NewConditions()
|
|
|
for _, field := range fields {
|
|
|
// 不是键,字段跳过
|
|
|
if !field.IsKey {
|
|
|
@@ -162,7 +163,7 @@ func DeleteEntity(executor Executor, tableName string, e any) error {
|
|
|
conditions.Equal(field.ColumnName, field.Value)
|
|
|
}
|
|
|
|
|
|
- executeParamsMap, err := DeleteExecuteParams{
|
|
|
+ executeParamsMap, err := sql.DeleteExecuteParams{
|
|
|
TableName: tableName,
|
|
|
Conditions: conditions,
|
|
|
}.Map()
|
|
|
@@ -170,7 +171,7 @@ func DeleteEntity(executor Executor, tableName string, e any) error {
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
- _, err = executor.ExecuteRawSql(DeleteTpl, executeParamsMap)
|
|
|
+ _, err = executor.ExecuteRawSql(sql.DeleteTpl, executeParamsMap)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
@@ -202,8 +203,8 @@ func UpdateEntity(executor Executor, tableName string, e any) error {
|
|
|
}
|
|
|
|
|
|
now := time.Now().Local()
|
|
|
- tableRow := NewTableRow()
|
|
|
- conditions := NewConditions()
|
|
|
+ tableRow := sql.NewTableRow()
|
|
|
+ conditions := sql.NewConditions()
|
|
|
|
|
|
for _, field := range fields {
|
|
|
// 不是键字段
|
|
|
@@ -227,7 +228,7 @@ func UpdateEntity(executor Executor, tableName string, e any) error {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- executeParamsMap, err := UpdateExecuteParams{
|
|
|
+ executeParamsMap, err := sql.UpdateExecuteParams{
|
|
|
TableName: tableName,
|
|
|
TableRow: tableRow,
|
|
|
Conditions: conditions,
|
|
|
@@ -236,7 +237,7 @@ func UpdateEntity(executor Executor, tableName string, e any) error {
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
- _, err = executor.ExecuteRawSql(UpdateTpl, executeParamsMap)
|
|
|
+ _, err = executor.ExecuteRawSql(sql.UpdateTpl, executeParamsMap)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
@@ -244,7 +245,7 @@ func UpdateEntity(executor Executor, tableName string, e any) error {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
-func Insert(executor Executor, executeParams *InsertExecuteParams) error {
|
|
|
+func Insert(executor Executor, executeParams *sql.InsertExecuteParams) error {
|
|
|
if executor == nil {
|
|
|
return fserr.New("没有传递执行器")
|
|
|
}
|
|
|
@@ -258,7 +259,7 @@ func Insert(executor Executor, executeParams *InsertExecuteParams) error {
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
- _, err = executor.ExecuteRawSql(InsertTpl, executeParamsMap)
|
|
|
+ _, err = executor.ExecuteRawSql(sql.InsertTpl, executeParamsMap)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
@@ -266,7 +267,7 @@ func Insert(executor Executor, executeParams *InsertExecuteParams) error {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
-func InsertBatch(executor Executor, executeParams *InsertBatchExecuteParams) error {
|
|
|
+func InsertBatch(executor Executor, executeParams *sql.InsertBatchExecuteParams) error {
|
|
|
if executor == nil {
|
|
|
return fserr.New("没有传递执行器")
|
|
|
}
|
|
|
@@ -280,7 +281,7 @@ func InsertBatch(executor Executor, executeParams *InsertBatchExecuteParams) err
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
- _, err = executor.ExecuteRawSql(InsertTpl, executeParamsMap)
|
|
|
+ _, err = executor.ExecuteRawSql(sql.InsertTpl, executeParamsMap)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
@@ -288,7 +289,7 @@ func InsertBatch(executor Executor, executeParams *InsertBatchExecuteParams) err
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
-func Delete(executor Executor, executeParams *DeleteExecuteParams) error {
|
|
|
+func Delete(executor Executor, executeParams *sql.DeleteExecuteParams) error {
|
|
|
if executor == nil {
|
|
|
return fserr.New("没有传递执行器")
|
|
|
}
|
|
|
@@ -302,7 +303,7 @@ func Delete(executor Executor, executeParams *DeleteExecuteParams) error {
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
- _, err = executor.ExecuteRawSql(DeleteTpl, executeParamsMap)
|
|
|
+ _, err = executor.ExecuteRawSql(sql.DeleteTpl, executeParamsMap)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
@@ -310,7 +311,7 @@ func Delete(executor Executor, executeParams *DeleteExecuteParams) error {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
-func Update(executor Executor, executeParams *UpdateExecuteParams) error {
|
|
|
+func Update(executor Executor, executeParams *sql.UpdateExecuteParams) error {
|
|
|
if executor == nil {
|
|
|
return fserr.New("没有传递执行器")
|
|
|
}
|
|
|
@@ -324,7 +325,7 @@ func Update(executor Executor, executeParams *UpdateExecuteParams) error {
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
- _, err = executor.ExecuteRawSql(UpdateTpl, executeParamsMap)
|
|
|
+ _, err = executor.ExecuteRawSql(sql.UpdateTpl, executeParamsMap)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
@@ -332,7 +333,7 @@ func Update(executor Executor, executeParams *UpdateExecuteParams) error {
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
-func Query(executor Executor, executeParams *QueryExecuteParams) ([]Result, int64, error) {
|
|
|
+func Query(executor Executor, executeParams *sql.QueryExecuteParams) ([]sql.Result, int64, error) {
|
|
|
if executor == nil {
|
|
|
return nil, 0, fserr.New("没有传递执行器")
|
|
|
}
|
|
|
@@ -346,7 +347,7 @@ func Query(executor Executor, executeParams *QueryExecuteParams) ([]Result, int6
|
|
|
return nil, 0, err
|
|
|
}
|
|
|
|
|
|
- countExecuteParamsMap, err := CountExecuteParams{
|
|
|
+ countExecuteParamsMap, err := sql.CountExecuteParams{
|
|
|
TableName: executeParams.TableName,
|
|
|
Conditions: executeParams.Conditions,
|
|
|
}.Map()
|
|
|
@@ -354,17 +355,17 @@ func Query(executor Executor, executeParams *QueryExecuteParams) ([]Result, int6
|
|
|
return nil, 0, err
|
|
|
}
|
|
|
|
|
|
- tableRows, err := executor.ExecuteRawSql(QueryTpl, queryExecuteParamsMap)
|
|
|
+ tableRows, err := executor.ExecuteRawSql(sql.QueryTpl, queryExecuteParamsMap)
|
|
|
if err != nil {
|
|
|
return nil, 0, err
|
|
|
}
|
|
|
|
|
|
- countTableRow, err := executor.ExecuteRawSql(CountTpl, countExecuteParamsMap)
|
|
|
+ countTableRow, err := executor.ExecuteRawSql(sql.CountTpl, countExecuteParamsMap)
|
|
|
if err != nil {
|
|
|
return nil, 0, err
|
|
|
}
|
|
|
|
|
|
- results := make([]Result, len(tableRows))
|
|
|
+ results := make([]sql.Result, len(tableRows))
|
|
|
for i, row := range tableRows {
|
|
|
results[i] = row
|
|
|
}
|
|
|
@@ -372,7 +373,7 @@ func Query(executor Executor, executeParams *QueryExecuteParams) ([]Result, int6
|
|
|
return results, int64(countTableRow[0]["count"].(float64)), nil
|
|
|
}
|
|
|
|
|
|
-func QueryOne(executor Executor, executeParams *QueryOneExecuteParams) (Result, error) {
|
|
|
+func QueryOne(executor Executor, executeParams *sql.QueryOneExecuteParams) (sql.Result, error) {
|
|
|
if executor == nil {
|
|
|
return nil, fserr.New("没有传递执行器")
|
|
|
}
|
|
|
@@ -386,7 +387,7 @@ func QueryOne(executor Executor, executeParams *QueryOneExecuteParams) (Result,
|
|
|
return nil, err
|
|
|
}
|
|
|
|
|
|
- tableRows, err := executor.ExecuteRawSql(QueryTpl, executeParamsMap)
|
|
|
+ tableRows, err := executor.ExecuteRawSql(sql.QueryTpl, executeParamsMap)
|
|
|
if err != nil {
|
|
|
return nil, err
|
|
|
}
|
|
|
@@ -398,7 +399,7 @@ func QueryOne(executor Executor, executeParams *QueryOneExecuteParams) (Result,
|
|
|
return tableRows[0], nil
|
|
|
}
|
|
|
|
|
|
-func Count(executor Executor, executeParams *CountExecuteParams) (int64, error) {
|
|
|
+func Count(executor Executor, executeParams *sql.CountExecuteParams) (int64, error) {
|
|
|
if executor == nil {
|
|
|
return 0, fserr.New("没有传递执行器")
|
|
|
}
|
|
|
@@ -412,7 +413,7 @@ func Count(executor Executor, executeParams *CountExecuteParams) (int64, error)
|
|
|
return 0, err
|
|
|
}
|
|
|
|
|
|
- tableRows, err := executor.ExecuteRawSql(CountTpl, executeParamsMap)
|
|
|
+ tableRows, err := executor.ExecuteRawSql(sql.CountTpl, executeParamsMap)
|
|
|
if err != nil {
|
|
|
return 0, err
|
|
|
}
|
|
|
@@ -420,7 +421,7 @@ func Count(executor Executor, executeParams *CountExecuteParams) (int64, error)
|
|
|
return int64(tableRows[0]["count"].(float64)), nil
|
|
|
}
|
|
|
|
|
|
-func CheckExist(executor Executor, executeParams *CheckExistExecuteParams) (bool, error) {
|
|
|
+func CheckExist(executor Executor, executeParams *sql.CheckExistExecuteParams) (bool, error) {
|
|
|
if executor == nil {
|
|
|
return false, fserr.New("没有传递执行器")
|
|
|
}
|
|
|
@@ -434,7 +435,7 @@ func CheckExist(executor Executor, executeParams *CheckExistExecuteParams) (bool
|
|
|
return false, err
|
|
|
}
|
|
|
|
|
|
- tableRows, err := executor.ExecuteRawSql(CountTpl, executeParamsMap)
|
|
|
+ tableRows, err := executor.ExecuteRawSql(sql.CountTpl, executeParamsMap)
|
|
|
if err != nil {
|
|
|
return false, err
|
|
|
}
|
|
|
@@ -442,7 +443,7 @@ func CheckExist(executor Executor, executeParams *CheckExistExecuteParams) (bool
|
|
|
return int64(tableRows[0]["count"].(float64)) > 0, nil
|
|
|
}
|
|
|
|
|
|
-func CheckHasOnlyOne(executor Executor, executeParams *CheckHasOnlyOneExecuteParams) (bool, error) {
|
|
|
+func CheckHasOnlyOne(executor Executor, executeParams *sql.CheckHasOnlyOneExecuteParams) (bool, error) {
|
|
|
if executor == nil {
|
|
|
return false, fserr.New("没有传递执行器")
|
|
|
}
|
|
|
@@ -456,7 +457,7 @@ func CheckHasOnlyOne(executor Executor, executeParams *CheckHasOnlyOneExecutePar
|
|
|
return false, err
|
|
|
}
|
|
|
|
|
|
- tableRows, err := executor.ExecuteRawSql(CountTpl, executeParamsMap)
|
|
|
+ tableRows, err := executor.ExecuteRawSql(sql.CountTpl, executeParamsMap)
|
|
|
if err != nil {
|
|
|
return false, err
|
|
|
}
|
|
|
@@ -464,7 +465,7 @@ func CheckHasOnlyOne(executor Executor, executeParams *CheckHasOnlyOneExecutePar
|
|
|
return int64(tableRows[0]["count"].(float64)) == 1, nil
|
|
|
}
|
|
|
|
|
|
-func ExecuteRawSql(executor Executor, sql string, executeParams map[string]any) ([]Result, error) {
|
|
|
+func ExecuteRawSql(executor Executor, sql string, executeParams map[string]any) ([]sql.Result, error) {
|
|
|
if executor == nil {
|
|
|
return nil, fserr.New("没有传递执行器")
|
|
|
}
|
|
|
@@ -481,7 +482,7 @@ func ExecuteRawSql(executor Executor, sql string, executeParams map[string]any)
|
|
|
return tableRows, nil
|
|
|
}
|
|
|
|
|
|
-func ExecuteSql(executor Executor, name string, executeParams map[string]any) ([]Result, error) {
|
|
|
+func ExecuteSql(executor Executor, name string, executeParams map[string]any) ([]sql.Result, error) {
|
|
|
if executor == nil {
|
|
|
return nil, fserr.New("没有传递执行器")
|
|
|
}
|