当前位置: 首页 > news >正文

产品管理系统seo主要做哪些工作

产品管理系统,seo主要做哪些工作,公司做网站需要提供什么,网站建设的优势目录 模型定义使用Create创建记录一次性创建多条数据批量插入数据时开启事务默认值问题 模型定义 定义一个PersonInfo结构体。 type PersonInfo struct {Id uint64 gorm:"column:id;primary_key;NOT NULL" json:"id"UserName string gorm:"co…

目录

  • 模型定义
  • 使用Create创建记录
  • 一次性创建多条数据
  • 批量插入数据时开启事务
  • 默认值问题

模型定义

定义一个PersonInfo结构体。

type PersonInfo struct {Id       uint64 `gorm:"column:id;primary_key;NOT NULL" json:"id"`UserName string `gorm:"column:username;unique;NOT NULL" json:"username"`Password string `gorm:"column:password" json:"password"`Age      int    `gorm:"column:age" json:"age"`
}

使用Create创建记录

Create方法用于创建一条新的数据记录,并将其保存到数据库中。使用该方法时,需要传入一个指针,表示要创建的数据记录。

p1 := connect.PersonInfo{Id:       1,UserName: "abc",Password: "12345",Age:      19,}connect.DB.Create(&p1)

运行完成后,查询结果如下:

image-20230604085025895

一次性创建多条数据

第一种方法:使用 Create() 创建多项记录:

	p := []*connect.PersonInfo{{Id: 2, UserName: "def", Password: "56789", Age: 20},{Id: 3, UserName: "xyz", Password: "09876", Age: 22},}connect.DB.Create(&p)

运行完成后,查询结果如下:

image-20230604110931689

第二种方法:使用 CreateInBatches()方法。该方法可以一次性将多条数据记录批量插入到数据库中,从而提高插入数据的效率。CreateInBatches 方法的用法与 Create 方法基本相同,只是需要传入一个额外的参数,表示每批次插入的数据记录数量。使用CreateInBatches方法的好处就是CreateInBatches方法能够保证原子性,如果其中一条数据插入失败,则整个插入操作都会进行回滚。

p := []connect.PersonInfo{{Id: 4, UserName: "drg", Password: "5622", Age: 25},{Id: 5, UserName: "tes", Password: "0955", Age: 26},}connect.DB.CreateInBatches(p, 2)

运行完成后,查询结果如下:

image-20230604111734531

批量插入数据时开启事务

p := []connect.PersonInfo{{Id: 6, UserName: "edg", Password: "6722", Age: 24},{Id: 7, UserName: "dyg", Password: "0395", Age: 23},}tx := connect.DB.Begin() //开启事务for _, value := range p {tx.Create(&value)}tx.Commit() //提交事务

运行完成后,查询结果如下:

image-20230604112557961

上面的示例代码中,首先定义了一个名为p的结构体切片,其中包含2条数据记录。然后,调用 Begin 方法开启一个事务,循环遍历 p 切片,调用 Create 方法插入每条数据记录,最后调用 Commit 方法提交事务。与 CreateInBatches 方法类似,如果其中任何一个数据记录插入失败,整个事务都会回滚。

默认值问题

定义如下模型:

type User struct {Id       uint64UserName stringPassWord string `gorm:"default:'000000'"`Age      int    `gorm:"default:18"`
}

如果没有指定password,password就为000000;如果没有指定age,age就为18。

u := connect.User{Id:       1,UserName: "aaa",}connect.DB.Create(&u)
image-20230604115407950

注意: 通过tag定义字段的默认值,在创建记录时候生成的 SQL 语句会排除没有值或值为零值的字段。 在将记录插入到数据库后,Gorm会从数据库加载那些字段的默认值。举个例子:

u := connect.User{Id:       2,UserName: "bbb",PassWord: "",Age:      0,}connect.DB.Create(&u)

运行完成后,查询结果如下:

image-20230604115743351

可以看到,上面代码的执行结果并不是password为空值,age为0。而是password为000000,age为18。所以,当使用了tag的默认值功能的时候,其字段的零值, 比如0, “”,false或者其它零值,都不会保存到数据库内,而是使用他们的默认值。 如果想避免这种情况,可以考虑使用指针或实现 Scanner/Valuer接口,

1.使用指针方式实现零值存入数据库

使用指针重新定义模型:(将原来的string类型和int类型改为 *string 和 *int 类型。)

type User struct {Id       uint64UserName stringPassWord *string `gorm:"default:'000000'"`Age      *int    `gorm:"default:18"`
}

使用new函数进行赋值:

u := connect.User{Id:       2,UserName: "bbb",PassWord: new(string),Age:      new(int),}connect.DB.Create(&u)

运行完成后,查询结果如下:

image-20230604120802961

这样各种类型的零值或空值字段就能插入数据库了。

2.使用Scanner/Valuer接口方式实现零值存入数据库

模型定义如下:(将原来的string类型和int类型改为 sql.NullString 和 sql.NullInt64 类型。)

type User struct {Id       uint64UserName stringPassWord sql.NullString `gorm:"default:'000000'"` // sql.NullString 实现了Scanner/Valuer接口Age      sql.NullInt64  `gorm:"default:18"`       // sql.NullInt64 实现了Scanner/Valuer接口
}

赋值如下:

u := connect.User{Id:       3,UserName: "bing",PassWord: sql.NullString{String: "", Valid: true},Age:      sql.NullInt64{Int64: 0, Valid: true},}connect.DB.Create(&u)

运行完成后,查询结果如下:

image-20230604143256011
http://www.hkea.cn/news/189696/

相关文章:

  • 昆明做大的网站开发公司google网页搜索
  • 做网站运营需要什么证宁波靠谱营销型网站建设
  • 天津进口网站建设电话青岛网站建设公司
  • 游戏币网站建设win7优化大师官方网站
  • 技术专业网站建设班级优化大师网页版登录
  • 外国网站上做雅思考试台州百度推广优化
  • 男女做那种的的视频网站国内最好的搜索引擎
  • 泉州做网站优化价格成功品牌策划案例
  • 做网站去哪个平台资源优化排名网站
  • 备案的网站名称可以改吗百度青岛代理公司
  • 专做进口批发的网站关键词优化多少钱
  • 做网站有了空间在备案吗百度权重高的网站有哪些
  • 做空间的网站著名的网络营销案例
  • 做网站客户尾款老不给怎么办百度推广年费多少钱
  • 想要将网站信息插到文本链接怎么做百度关键词搜索
  • 江苏网站备案要多久seo域名综合查询
  • 大型网站建设机构津seo快速排名
  • 建设证件查询官方网站宁波做网站的公司
  • 那些网站招聘在家里做的客服网店推广策略
  • 湘西 网站 建设 公司sem代运营托管公司
  • 用css为wordpress排版西安seo外包服务
  • vs2005做网站百度推广官方网站登录入口
  • 乐从网站建设公司北京seo优化推广
  • 如何在网上接做网站的小项目市场监督管理局电话
  • 淘宝购物站优化
  • 石家庄最新疫情轨迹河南网站优化公司哪家好
  • 网站色彩搭配服务器ip域名解析
  • 哪个网站专业做安防如何注册域名网站
  • 穆棱市住房和城乡建设局网站关键词词库
  • 成都网站建设市场什么是网络营销的核心