mirror of
				https://gitee.com/dromara/mayfly-go
				synced 2025-11-04 08:20:25 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			35 lines
		
	
	
		
			705 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			705 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package dbi
 | 
						||
 | 
						||
import (
 | 
						||
	"database/sql"
 | 
						||
)
 | 
						||
 | 
						||
var (
 | 
						||
	metas = make(map[DbType]Meta)
 | 
						||
)
 | 
						||
 | 
						||
// 注册数据库类型与dbmeta
 | 
						||
func Register(dt DbType, meta Meta) {
 | 
						||
	metas[dt] = meta
 | 
						||
}
 | 
						||
 | 
						||
// 根据数据库类型获取对应的Meta
 | 
						||
func GetMeta(dt DbType) Meta {
 | 
						||
	return metas[dt]
 | 
						||
}
 | 
						||
 | 
						||
type DbVersion string
 | 
						||
 | 
						||
// 数据库元信息,如获取sql.DB、Dialect等
 | 
						||
type Meta interface {
 | 
						||
	// GetSqlDb 根据数据库信息获取sql.DB
 | 
						||
	GetSqlDb(*DbInfo) (*sql.DB, error)
 | 
						||
 | 
						||
	// GetDialect 获取数据库方言, 若一些接口(如QuoteIdentifier)不需要DbConn,则可以传nil
 | 
						||
	GetDialect(*DbConn) Dialect
 | 
						||
 | 
						||
	// GetMetadata 获取元数据信息接口
 | 
						||
	// @param *DbConn 数据库连接
 | 
						||
	GetMetadata(*DbConn) Metadata
 | 
						||
}
 |