2024-01-12 13:15:30 +08:00
|
|
|
|
package dbi
|
|
|
|
|
|
|
|
|
|
|
|
import "database/sql"
|
|
|
|
|
|
|
2024-01-24 17:01:17 +08:00
|
|
|
|
var (
|
2024-03-01 04:03:03 +00:00
|
|
|
|
metas = make(map[DbType]Meta)
|
2024-01-24 17:01:17 +08:00
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
// 注册数据库类型与dbmeta
|
|
|
|
|
|
func Register(dt DbType, meta Meta) {
|
|
|
|
|
|
metas[dt] = meta
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 根据数据库类型获取对应的Meta
|
|
|
|
|
|
func GetMeta(dt DbType) Meta {
|
|
|
|
|
|
return metas[dt]
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-03-11 20:04:20 +08:00
|
|
|
|
// 数据库元信息,如获取sql.DB、Dialect等
|
2024-01-12 13:15:30 +08:00
|
|
|
|
type Meta interface {
|
2024-01-13 13:38:53 +08:00
|
|
|
|
// 根据数据库信息获取sql.DB
|
2024-01-12 13:15:30 +08:00
|
|
|
|
GetSqlDb(*DbInfo) (*sql.DB, error)
|
|
|
|
|
|
|
2024-03-11 20:04:20 +08:00
|
|
|
|
// 获取数据库方言
|
2024-01-12 13:15:30 +08:00
|
|
|
|
GetDialect(*DbConn) Dialect
|
2024-03-15 13:31:53 +08:00
|
|
|
|
|
|
|
|
|
|
// 获取元数据信息接口
|
|
|
|
|
|
// @param *DbConn 数据库连接, 若一些元数据接口(如 GetIdentifierQuoteString)不需要DbConn,则可以传nil
|
|
|
|
|
|
GetMetaData(*DbConn) *MetaDataX
|
2024-01-12 13:15:30 +08:00
|
|
|
|
}
|