5.1 database/sql接口
发布日期:2021-06-30 15:53:47
浏览次数:3
分类:技术文章
本文共 680 字,大约阅读时间需要 2 分钟。
Go与PHP不同的地方是Go官方没有提供数据库驱动,而是为开发数据库驱动定义了一些标准接口,开发者可以根据定义的接口来开发相应的数据库驱动,这样做有一个好处,只要是按照标准接口开发的代码, 以后需要迁移数据库时,不需要任何修改。那么Go都定义了哪些标准接口呢?让我们来详细的分析一下
sql.Register
这个存在于database/sql的函数是用来注册数据库驱动的,当第三方开发者开发数据库驱动时,都会实现init函数,在init里面会调用这个Register(name string, driver driver.Driver)
完成本驱动的注册。
我们来看一下mymysql、sqlite3的驱动里面都是怎么调用的:
//https://github.com/mattn/go-sqlite3驱动func init() { sql.Register("sqlite3", &SQLiteDriver{})}//https://github.com/mikespook/mymysql驱动// Driver automatically registered in database/sqlvar d = Driver{proto: "tcp", raddr: "127.0.0.1:8889"}func init() { Register("SET NAMES utf8") sql.Register("mymysql", &d)}
我们看到第三方数据库驱动都是通过调用这个函数来注册自己的数据库驱动名称以及相应的driver实现。在
转载地址:https://kaitiren.blog.csdn.net/article/details/113273121 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月13日 12时36分40秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
打印等腰三角形(Java)
2019-05-01
打印菱形(Java)
2019-05-01
百钱买百鸡(Java)
2019-05-01
打印乘法口诀表(Java)
2019-05-01
分类算法-KNN
2019-05-01
JVM内存管理
2019-05-01
JVM类加载机制
2019-05-01
JVM之OOM分析
2019-05-01
JVM之字节码如何在jvm流转
2019-05-01
深入剖析JVM垃圾回收-上
2019-05-01
深入剖析JVM垃圾回收-下
2019-05-01
JVM-G1垃圾收集器
2019-05-01
JVM优化-CMS下高并发案例
2019-05-01
机器学习-评价分类、回归算法模型指标
2019-05-01
Azkaban体系结构
2019-05-01
Azkaban2.5环境搭建及测试
2019-05-01
Synchronized与ReentrantLock区别
2019-05-01
机器学习之重头戏-特征预处理
2019-05-01
synchronized底层实现及锁的升级、降级
2019-05-01
Java线程生命周期之旅
2019-05-01