综述
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
其他方面 漏洞包括服务端和客户端漏洞 垂直越权只会发生在一个账号里