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

哪里有网站建设服务阐述网络营销策略的内容

哪里有网站建设服务,阐述网络营销策略的内容,网页制作简单教程,网站名称和备案的不一样目录 模型定义使用Create创建记录一次性创建多条数据批量插入数据时开启事务默认值问题 模型定义 定义一个PersonInfo结构体。 type PersonInfo struct {Id uint64 gorm:column:id;primary_key;NOT NULL json:idUserName string gorm:co… 目录 模型定义使用Create创建记录一次性创建多条数据批量插入数据时开启事务默认值问题 模型定义 定义一个PersonInfo结构体。 type PersonInfo struct {Id uint64 gorm:column:id;primary_key;NOT NULL json:idUserName string gorm:column:username;unique;NOT NULL json:usernamePassword string gorm:column:password json:passwordAge int gorm:column:age json:age }使用Create创建记录 Create方法用于创建一条新的数据记录并将其保存到数据库中。使用该方法时需要传入一个指针表示要创建的数据记录。 p1 : connect.PersonInfo{Id: 1,UserName: abc,Password: 12345,Age: 19,}connect.DB.Create(p1)运行完成后查询结果如下 一次性创建多条数据 第一种方法使用 Create() 创建多项记录 p : []*connect.PersonInfo{{Id: 2, UserName: def, Password: 56789, Age: 20},{Id: 3, UserName: xyz, Password: 09876, Age: 22},}connect.DB.Create(p)运行完成后查询结果如下 第二种方法使用 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)运行完成后查询结果如下 批量插入数据时开启事务 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() //提交事务运行完成后查询结果如下 上面的示例代码中首先定义了一个名为p的结构体切片其中包含2条数据记录。然后调用 Begin 方法开启一个事务循环遍历 p 切片调用 Create 方法插入每条数据记录最后调用 Commit 方法提交事务。与 CreateInBatches 方法类似如果其中任何一个数据记录插入失败整个事务都会回滚。 默认值问题 定义如下模型 type User struct {Id uint64UserName stringPassWord string gorm:default:000000Age int gorm:default:18 }如果没有指定passwordpassword就为000000如果没有指定ageage就为18。 u : connect.User{Id: 1,UserName: aaa,}connect.DB.Create(u)注意 通过tag定义字段的默认值在创建记录时候生成的 SQL 语句会排除没有值或值为零值的字段。 在将记录插入到数据库后Gorm会从数据库加载那些字段的默认值。举个例子 u : connect.User{Id: 2,UserName: bbb,PassWord: ,Age: 0,}connect.DB.Create(u)运行完成后查询结果如下 可以看到上面代码的执行结果并不是password为空值age为0。而是password为000000age为18。所以当使用了tag的默认值功能的时候其字段的零值, 比如0, “”,false或者其它零值都不会保存到数据库内而是使用他们的默认值。 如果想避免这种情况可以考虑使用指针或实现 Scanner/Valuer接口 1.使用指针方式实现零值存入数据库 使用指针重新定义模型将原来的string类型和int类型改为 *string 和 *int 类型。 type User struct {Id uint64UserName stringPassWord *string gorm:default:000000Age *int gorm:default:18 }使用new函数进行赋值 u : connect.User{Id: 2,UserName: bbb,PassWord: new(string),Age: new(int),}connect.DB.Create(u)运行完成后查询结果如下 这样各种类型的零值或空值字段就能插入数据库了。 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)运行完成后查询结果如下
http://www.hkea.cn/news/14326990/

相关文章:

  • 中文域名是网站名称吗微博营销的定义
  • 住房建设建设部网站常州知名网站公司
  • 怎样管理网站中国人自己的空间站
  • 辽宁网站建设哪里好找谷歌seo排名优化服务
  • 漂亮网站欣赏成都的教育品牌网站建设
  • 全屏网站宽度wordpress回复批准
  • 电脑上不了建设厅网站百度收录在线提交
  • 现代化公司网站建设南沙电子商务网站建设
  • 网站留言板怎么做如何起手做网站项目
  • 保定设计网站建设做网站的网页用什么软件好
  • 好看的知名企业网站软件工程最好的出路
  • 网站建设经费预算表学网页制作有什么用
  • 五彩科技网站建设山东网站建设哪家好
  • 美容行业网站建设多少价格网站开发费用摊销年限
  • 莱特币做空国外网站做网站的公司不给域名
  • 快速建站公司django 企业网站开发
  • 免费做明信片的网站怎么把广告发到各大平台
  • 如今流行的网站建设网站开发需要的编程软件有哪些
  • 百度不收录什么网站科技有限公司取名字
  • 临淄网站制作首选专家百度网盟推广有哪些网站
  • seo网站推广 杭州美化网站代码
  • 网站建设优化怎么做客户管理系统软件
  • 有什么字体设计的网站网站底部加备案号
  • 建网站收费郑州seo询搜点网络效果佳
  • 邯郸做移动网站价格表iis发布网站页面出问题
  • 网站程序开发外包百度搜索引擎介绍
  • 做兼职设计去哪个网站好php网站开发环境一
  • 扫码支付做进商城网站ppt模板免费下载 素材可爱
  • 站长工具seo综合查询下载微信小程序开发工具手机版
  • 辽宁省水利建设市场信用信息平台网站网站发产品ps怎么做产品图