mirror of
https://gitee.com/dromara/mayfly-go
synced 2026-01-04 21:55:48 +08:00
refactor: dbm包重构
This commit is contained in:
@@ -4,16 +4,6 @@ import (
|
||||
"database/sql"
|
||||
)
|
||||
|
||||
type DataType string
|
||||
|
||||
const (
|
||||
DataTypeString DataType = "string"
|
||||
DataTypeNumber DataType = "number"
|
||||
DataTypeDate DataType = "date"
|
||||
DataTypeTime DataType = "time"
|
||||
DataTypeDateTime DataType = "datetime"
|
||||
)
|
||||
|
||||
const (
|
||||
// -1. 无操作
|
||||
DuplicateStrategyNone = -1
|
||||
@@ -30,34 +20,16 @@ type DbCopyTable struct {
|
||||
CopyData bool `json:"copyData"` // 是否复制数据
|
||||
}
|
||||
|
||||
// 数据转换器
|
||||
type DataConverter interface {
|
||||
// 获取数据对应的类型
|
||||
// @param dbColumnType 数据库原始列类型,如varchar等
|
||||
GetDataType(dbColumnType string) DataType
|
||||
|
||||
// 根据数据类型格式化指定数据
|
||||
FormatData(dbColumnValue any, dataType DataType) string
|
||||
|
||||
// 根据数据类型解析数据为符合要求的指定类型等
|
||||
ParseData(dbColumnValue any, dataType DataType) any
|
||||
}
|
||||
|
||||
// -----------------------------------元数据接口定义------------------------------------------
|
||||
// 数据库方言 用于获取元信息接口、批量插入等各个数据库方言不一致的实现方式
|
||||
type Dialect interface {
|
||||
|
||||
// 获取元数据信息接口
|
||||
GetMetaData() MetaData
|
||||
|
||||
// GetDbProgram 获取数据库程序模块,用于数据库备份与恢复
|
||||
GetDbProgram() (DbProgram, error)
|
||||
|
||||
// 批量保存数据
|
||||
BatchInsert(tx *sql.Tx, tableName string, columns []string, values [][]any, duplicateStrategy int) (int64, error)
|
||||
|
||||
// 获取数据转换器用于解析格式化列数据等
|
||||
GetDataConverter() DataConverter
|
||||
|
||||
// 拷贝表
|
||||
CopyTable(copy *DbCopyTable) error
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user