震惊!Gorm 终于可以操作 Oracle 了
Go语言精选
共 1741字,需浏览 4分钟
· 2020-12-07
前言:写这篇文章的目的有两个,一是希望找到志同道合的伙伴一起维护这个库,提高这个库的代码质量。二是为了推广 gorm 的 oracle 驱动,避免因为操作 oracle 而编写大量的样板代码。同时也要感谢Go 语言中文网的站长 polaris 能用它的公众号为这个库进行推广。
gorm-oracle 开源库地址:https://github.com/cengsin/oracle
欢迎大家积极参与维护 :)
使用 gorm 连接 oracle
前置条件
首先安装 oracle 数据库客户端和 go-oci8
oracle client: httpwww.oracle.com/technetwork/database/database-technologies/instant-client/downloads/index.html go-oci8: https://github.com/mattn/go-oci8 之后配置好环境变量 LD_LIBRARY_PATH
LD_LIBRAAY_PATH = ${oracle client path}
获取 Gorm-Oracle 驱动
go get github.com/CengSin/oracle
在文件加载的时候初始化数据库连接
func init() {
con, err := gorm.Open(oracle.Open("system/oracle@127.0.0.1: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())
}
}
定义结构模型
type ClassInfo struct {
ClassId int64 `gorm:"column:CLASSID;primaryKey"`
ClassName string `gorm:"column:CLASSNAME;size:50"`
}
func (c ClassInfo) TableName() string {
return `CLASSINFO`
}
对数据库进行操作
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;
}
推荐阅读
评论
盘点Lombok的几个骚操作,你绝对没用过!
👉 欢迎加入小哈的星球 ,你将获得: 专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡 / 赠书福利全栈前后端分离博客项目 2.0 版本完结啦, 演示链接:http://116.62.199.48/ ,新项目正在酝酿中
小哈学Java
0
老爸嘲讽我了,写破代码一年就挣十几万,他在工地带50个工人,一个月光人头费就3万,让我滚回去跟他干!
点击上方 "大数据肌肉猿"关注, 星标一起成长点击下方链接,进入高质量学习交流群今日更新| 1052个转型案例分享-大数据交流群来自:网络,侵删有个网友的父亲是做工程的,天天就嘲笑他,说他天天写着破代码有啥用,一年就拿个十多万的死工资,然后告诉他自己在工地里面带了50个工人,一个月能抽三万
程序源代码
0
我发现 Lombok的几个骚操作,哈哈好用
大家好,我是小富~前言本文不讨论对错,只讲骚操作。有的方法看看就好,知道可以这么用,但是否应用到实际开发中,那就仁者见仁,智者见智了。一万个读者就会有一万个哈姆雷特,希望这篇文章能够给您带来一些思考。耐心看完,你一定会有所收获。@onX例如 onConstructor, oMet
程序员内点事
0
微软开源MS-DOS操作系统源码,冲到GitHub第一了!
大家好,我是轩辕。这两天逛GitHub的时候,突然发现一个叫 MS-DOS的项目冲到Trending榜首了!定睛一看,微软官方啊,搜了一下才知道,原来前两天,微软把MS-DOS 4.0系统开源了!关于这个系统,估计现在很多程序员都不知道了,或者只在古老的教科书上看过这玩意儿。MS-DOS,全称为Mi
编程技术宇宙
6
多人同时导出 Excel 干崩服务器!新来的阿里大佬给出的解决方案太优雅了!
点击关注公众号,Java 干货及时推送↓推荐阅读:面试辅导,我们出大成果了!来源:juejin.cn/post/7259249904777838629前言 业务诉求:考虑到数据库数据日渐增多,导出会有全量数据的导出,多人同时导出可以会对服务性能造成影响,导出涉及到mysql查询的io操作,
Java技术栈
1
今年后端爆了???
大家好,我是二哥呀。每次登录牛客,看到最多的就是各种 Java 后端岗位的喜讯,美团 OC了、快手 OC 了、就连腾讯 OC 的都是 Java 岗,我怀疑牛客是不是给我打了“只报喜不报忧”的标签?星球里也有不少球友给我发来喜讯,难道说每年都在凉凉的 Java 后端又承担起了就业的重任?!不可能,绝对
沉默王二
3
BigDecimal 为什么可以保证精度不丢失?
来源:juejin.cn/post/7348709938023940136👉 欢迎加入小哈的星球 ,你将获得: 专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡 / 赠书福利全栈前后端分离博客项目 2.0 版本完结啦, 演示链接
小哈学Java
0
竞业真太TM恶心了!
看到一个新闻,本周漂亮国的联邦贸易委员会(FTC) 宣布全面禁止所有员工(包括高级管理人员)签署新的竞业禁止协议。对于现有的竞业协议,高级管理人员的现有竞业协议仍然有效,其他员工的现有竞业协议则在规定生效日期后不再强制执行。由于国外的互联网发展的早,很多国内的习惯也是照搬他们的,现在漂亮国
公子龙
2