使用 GORM连接数据库-实现增删改查操作 | 青训营

94 阅读2分钟

综述

GORM是一个Go语言对象关系映射库,它可以帮助开发者连接数据库并实现增删改查等数据库操作。

为了连接数据库,首先需要导入GORM库并根据数据库类型选择对应的驱动程序。例如,如果你使用的是MySQL数据库,可以使用import "gorm.io/driver/mysql"导入MySQL驱动。 接下来,需要创建一个数据库连接并打开它。你可以使用gorm.Open()函数来打开连接,该函数的第一个参数是数据库类型,第二个参数是连接信息,例如数据库的用户名、密码、主机地址和端口等。 连接打开后,你可以使用GORM提供的API来实现增删改查等操作。例如,要创建一个新的记录,可以使用Create()方法;要删除记录,可以使用Delete()方法;要更新记录,可以使用Update()方法;要查询记录,可以使用Find()方法。 你可以根据具体需求调用不同的方法和参数来实现特定的操作。在进行操作前,你需要先定义好模型(Struct),并将其与数据库中的表进行映射。 总而言之,通过导入GORM库、连接数据库、调用适当的方法,你就可以在Go语言中使用GORM库来连接数据库并实现增删改查操作了。

细节 GORM statement可以由sql语句产生。 可以扩展子句,如 import "gorm.io/hints" postgre sql的语句为 DELETE FROM users WHERE condition 使用docker快速创建一个本地可连接的mysql

ConnPool的概念

  • 查找到缓存的预编译SQL
  • 若没有找到,把受到的SQL和Vars进行预编译
  • 使用缓存的预编译SQL执行 需要解决的一个问题是输入问题,可以用interpolateparams=False解决

Dialector可以

  • 定制SQL生成
  • 定制GORM插件
  • 定制ConnPool
  • 定制企业特性逻辑

相关指令

$ docker run -itd -e MYSQL ROOT PASSWORD='bgbiao.top'-p 13306:33--name go-orm-mysgl

登陆mysq1并创建一个测试库

指令:

$ docker exec -it go-orm-mysql mysql -uroot -pbgbiao.top...

mysql> create database test api;

Query 0K,1 row affected (0.00 sec)

运行一个简单示例

指令:

$ cat gorm-mysql-example.go

其他方面 漏洞包括服务端和客户端漏洞 垂直越权只会发生在一个账号里