2024-01-12 13:15:30 +08:00
|
|
|
|
package dbi
|
|
|
|
|
|
|
2024-10-20 03:52:23 +00:00
|
|
|
|
import (
|
|
|
|
|
|
"database/sql"
|
|
|
|
|
|
)
|
2024-01-12 13:15:30 +08:00
|
|
|
|
|
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-10-20 03:52:23 +00:00
|
|
|
|
type DbVersion string
|
|
|
|
|
|
|
2024-03-11 20:04:20 +08:00
|
|
|
|
// 数据库元信息,如获取sql.DB、Dialect等
|
2024-01-12 13:15:30 +08:00
|
|
|
|
type Meta interface {
|
2024-11-01 17:27:22 +08:00
|
|
|
|
// GetSqlDb 根据数据库信息获取sql.DB
|
2024-01-12 13:15:30 +08:00
|
|
|
|
GetSqlDb(*DbInfo) (*sql.DB, error)
|
|
|
|
|
|
|
2024-11-01 17:27:22 +08:00
|
|
|
|
// GetDialect 获取数据库方言, 若一些接口(如 GetIdentifierQuoteString)不需要DbConn,则可以传nil
|
2024-01-12 13:15:30 +08:00
|
|
|
|
GetDialect(*DbConn) Dialect
|
2024-03-15 13:31:53 +08:00
|
|
|
|
|
2024-11-01 17:27:22 +08:00
|
|
|
|
// GetMetadata 获取元数据信息接口
|
|
|
|
|
|
// @param *DbConn 数据库连接
|
|
|
|
|
|
GetMetadata(*DbConn) Metadata
|
2024-01-12 13:15:30 +08:00
|
|
|
|
}
|