Xorm 使用手册,面向工作学习

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

func init() {
	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”。


希望这个博客能对你有所益处。我是轻王,我为自己代言。

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫轻王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值