golang利用模板生成数据库表对应的模型及操作函数

本文介绍了如何使用Golang结合模板技术,从数据库中获取表结构信息,自动生成对应的ORM模型结构及操作函数。通过解析数据库表信息,利用特定的模板语法,生成struct和CRUD代码,简化了开发过程。讨论了处理NULL值的策略,并展示了代码生成后的目录结构和使用示例。
摘要由CSDN通过智能技术生成

起因


  很多年以前,当我第一次接触到ORM的时候,我就有一点疑惑:这玩意用起来倒是方便,就是模型结构得一个字段一个字段的写,非常枯燥也非常累人,而且如果表结构修改了,比如增加、减少或者修改了一个字段,就得修改模型文件。那个时候也没有想到可以从数据库中读取到目标表的表结构数据自动生成ORM需要的模型结构。直到有一天我看到一个根据模板自动生成ORM的模型文件的代码,然后我就用golang也写了这么一个玩意。完整的代码在这里
  

生成过程

准备工作


  假设我在mysql中创建了一个名为dbnote的库,并且创建了一个名为msg的表,创建语句如下:

CREATE TABLE msg (
    id int(11) NOT NULL AUTO_INCREMENT,
    sender_id int(11) NOT NULL COMMENT '发送者',
    receiver_id int(11) NOT NULL COMMENT '接收者',
    content varchar(256) NOT NULL COMMENT '内容',
    status tinyint(4) NOT NULL,
    createtime timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (id)
  );

那么对应的ORM模型则是

type Msg struct {
    ID         int        `db:"id" json:"id"`                   //
    SenderID   int        `db:"sender_id" json:"sender_id"`     // 发送者
    ReceiverID int        `db:"receiver_id" json:"receiver_id"` // 接收者
    Content    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值