Xorm 使用手册,面向工作学习
Xorm轻松学习
个人博客站点:
简书: 😽 猫轻王 https://www.jianshu.com/u/6cce817646be
掘金: 😽 猫轻王 https://juejin.cn/user/1640918680347453
CSDN: 😽 猫轻王 https://blog.csdn.net/moer0
个人项目主页:https://github.com/moercat
一、Xorm 是什么?
Xorm所有操作均需要事先创建并配置 ORM 引擎才可以进行。XORM 支持两种 ORM 引擎,即 Engine 引擎和 Engine Group 引擎。一个 Engine 引擎用于对单个数据库进行操作,一个 Engine Group 引擎用于对读写分离的数据库或者负载均衡的数据库进行操作。
二、详细代码
1.创建 Engine
代码如下(示例):
package xorm_test
import(_"github.com/go-sql-driver/mysql""xorm.io/xorm")var Engine *xorm.Engine
funcinit(){var err error
Engine, err = xorm.NewEngine("mysql","root:esyrJTcjfFEBheKm@tcp(120.25.125.171:3306)/mo?charset=utf8")if err !=nil{panic(err)return}
err = Engine.Ping()if err !=nil{panic(err)return}}
你也可以用 NewEngineWithParams, NewEngineWithDB 和 NewEngineWithDialectAndDB 来创建引擎。
创建完成 engine 之后,并没有立即连接数据库,此时可以通过 engine.Ping() 或者 engine.PingContext(),
我们通过 xorm.NewEngine 将引擎放入可供外部调用的对象Engine ,通过init 函数,使得当使用到该包时则会进行数据库的初始化,简便我们在工作中的操作繁琐度。
至于为什么用panic来接受错误,而非忽略或使用recover来接收错误是因为数据库的初始化往往在程序启动时,而数据库兼顾着我们系统的极大多数数据存储,那么程序启动时就已发现程序的错误,就可以直接终止程度。从而告知开发者存在错误,而非业务错误等需要进行捕获,防止程序中断。
2.mysql权限错误
Access denied for user ‘root’@‘localhost’ (using password: YES)
1.可能是ip,或用户被拦截
- mysql -u root -p 输入密码后进入数据库
- use mysql; 选择mysql数据库
- select user,host from user; 查看此时数据库内权限情况 如果你要登陆的用户 host 为localhost ,以mo 为例
- update user set host=‘%’ where user=‘mo’; mysql更新语句,更新名称为’mo’的用户,将它的host也就是ip置为%,也就是允许任何ip登录该数据库,localhost 为支持本机服务器访问。如果只想开放某一个ip也可以将%替换为想要的ip。
- flush privileges; 刷新权限
总结
学习orm框架也就是学习数据库的过程,每一个操作每一个需求都是数据库的需求,我们学习Xorm的过程中也在不断学习着数据库的相关操作。熟练掌握orm框架的时候,自然也就熟练掌握了数据库的操作,增删改查也是不变的真理,但是我们需要不断提高自己,避免沦为 “crud boy”。
希望这个博客能对你有所益处。我是轻王,我为自己代言。
版权归原作者 猫轻王 所有, 如有侵权,请联系我们删除。