• 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
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    你也可以用 NewEngineWithParams, NewEngineWithDB 和 NewEngineWithDialectAndDB 来创建引擎。
    
    • 1

    创建完成 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”。


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

  • 相关阅读:
    【图论】树链剖分
    linux部署禅道
    Netty12-TCP粘包拆包
    Python逆向爬虫之scrapy框架,非常详细
    CSS-表格属性(1)
    初探HarmonyOS之ArkTs使用教程
    mysql bigInt和hibernate的long类型转换错误
    用 40 块搞个游戏机“万能卡”「GitHub 热点速览 v.22.27」
    1分钟了解音频、语音数据和自然语言处理的关系
    maven pom.xml文件结构 以及 repository 优先级概述
  • 原文地址:https://blog.csdn.net/moer0/article/details/126495212