震驚!Gorm 終于可以操作 Oracle 了
前言:寫這篇文章的目的有兩個,一是希望找到志同道合的伙伴一起維護這個庫,提高這個庫的代碼質(zhì)量。二是為了推廣 gorm 的 oracle 驅(qū)動,避免因為操作 oracle 而編寫大量的樣板代碼。同時也要感謝Go 語言中文網(wǎng)的站長 polaris 能用它的公眾號為這個庫進行推廣。
gorm-oracle 開源庫地址:https://github.com/cengsin/oracle
歡迎大家積極參與維護 :)
使用 gorm 連接 oracle
前置條件
首先安裝 oracle 數(shù)據(jù)庫客戶端和 go-oci8
oracle client: httpwww.oracle.com/technetwork/database/database-technologies/instant-client/downloads/index.html go-oci8: https://github.com/mattn/go-oci8 之后配置好環(huán)境變量 LD_LIBRARY_PATH
LD_LIBRAAY_PATH = ${oracle client path}
獲取 Gorm-Oracle 驅(qū)動
go?get?github.com/CengSin/oracle
在文件加載的時候初始化數(shù)據(jù)庫連接
func?init()?{
?con,?err?:=?gorm.Open(oracle.Open("system/[email protected]:1521/XE"),?&gorm.Config{
??Logger:?logger.New(log.New(os.Stdout,?"\r\n",?log.LstdFlags),?logger.Config{
???SlowThreshold:?1?*?time.Millisecond,
???LogLevel:??????logger.Warn,
???Colorful:??????true,
??}),
?})
?if?err?!=?nil?{
??log.Fatalln(err)
?}
?if?err?=?conn.AutoMigrate(&model.ClassInfo{});?err?!=?nil?{
??log.Fatalln(err.Error())
?}
}
定義結(jié)構(gòu)模型
type?ClassInfo?struct?{
?ClassId???int64??`gorm:"column:CLASSID;primaryKey"`
?ClassName?string?`gorm:"column:CLASSNAME;size:50"`
}
func?(c?ClassInfo)?TableName()?string?{
?return?`CLASSINFO`
}
對數(shù)據(jù)庫進行操作
func?QueryCaseTest()?{
?classInfo?:=?new(model.ClassInfo)
?//?獲取第一條記錄(主鍵升序)
?db.First(classInfo)
?fmt.Printf("獲取第一條記錄(主鍵升序)%+v\n",?classInfo)
?//?SELECT?*?FROM?users?ORDER?BY?id?LIMIT?1;
?//?獲取第一條記錄(主鍵升序)
?classInfo?=?new(model.ClassInfo)
?db.Take(classInfo)
?fmt.Printf("獲取第一條記錄(主鍵升序)%+v\n",?classInfo)
?//?SELECT?*?FROM?users?LIMIT?1;
}
推薦閱讀
評論
圖片
表情
