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

应用程序开发网站seo哪里做的好

应用程序开发,网站seo哪里做的好,建设银行投诉网站首页,看车二手车网站源码文章目录 一、什么是GORM#xff1f;二、GORM连接mysql以及AutoMigrate创建表三、查询1、检索此对象是否存在于数据库#xff08;First,Take,Last方法#xff09;2、Find()方法检索3、根据指定字段查询 四、更新1、Save() 保存多个字段2、更新单个字段 五、删除 一、什么是G… 文章目录 一、什么是GORM二、GORM连接mysql以及AutoMigrate创建表三、查询1、检索此对象是否存在于数据库First,Take,Last方法2、Find()方法检索3、根据指定字段查询 四、更新1、Save() 保存多个字段2、更新单个字段 五、删除 一、什么是GORM GORM 是 Go 语言中一个非常流行的 ORM对象关系映射库它提供了一种简单而强大的方式来将 Go 结构体映射到数据库表并提供了丰富的方法来操作数据库比如查询、插入、更新和删除数据等。 二、GORM连接mysql以及AutoMigrate创建表 使用GORM之前先获取包: go get gorm.io/driver/mysql go get gorm.io/gorm数据库的连接 db, _ gorm.Open(mysql.New(mysql.Config{DSN: root:123456tcp(127.0.0.1:3306)/test?charsetutf8mb4parseTimeTruelocLocal,}), gorm.Config{SkipDefaultTransaction: true, // 禁用默认事务提高运行速度DisableForeignKeyConstraintWhenMigrating: true, // 禁用外键约束NamingStrategy: schema.NamingStrategy{//TablePrefix: t_, // 表名前缀User 的表名应该是 t_usersSingularTable: true, // 使用单数表名启用该选项},})使用AutoMigrate自动创建表在这里我们就要知道GORM里的模型是什么意思。 模型是使用普通结构体定义的。 也就是说数据库中的表是根据我们自己建立的结构体生成的我们可以在设计结构体的时候在后边加上gorm的一些限制然后自动迁移就可以在数据库中生成了。 gorm.Model type Model struct {ID uint gorm:primarykeyCreatedAt time.TimeUpdatedAt time.TimeDeletedAt DeletedAt gorm:index }这是gorm已经定义好的结构体可以直接使用。 案例1创建一个用户表自动迁移到数据库中。 type User struct {gorm.ModelName stringAge int }func main() {db.AutoMigrate(User{}) //自动迁移这个表user : User{Name: 张三,Age: 18,}rest : db.Create(user)fmt.Println(user.ID) // 主键IDfmt.Println(rest.RowsAffected)fmt.Println(rest.Error) }案例2自动创建一个嵌套的表组合。 type User struct {gorm.ModelName stringAge int }type Work struct {UserWork string }func main() {err : db.AutoMigrate(Work{}) //自动迁移这个表if err ! nil {fmt.Println(err)}work : Work{User: User{Name: 张三, Age: 18}, Work: 程序员}db.Create(work)fmt.Println(work.ID) }三、查询 以下所有操作的基本数据库信息如下 1、检索此对象是否存在于数据库First,Take,Last方法 GORM 提供了First、Take、Last方法以便从数据库中检索单个对象。当查询数据库时它添加了 LIMIT 1 条件且没有找到记录时它会返回 ErrRecordNotFound 错误。 //查询张三是否在数据库中//SELECT * FROM work WHERE name 张2三 AND work.deleted_at IS NULL ORDER BY work.id LIMIT 1var work1 Workresult : db.Where(name ?, 张三).First(work1)if result.Error ! nil {if errors.Is(result.Error, gorm.ErrRecordNotFound) {fmt.Println(没找到记录)return}fmt.Println(result.Error)return}fmt.Println(result.RowsAffected) // 受影响的行数2、Find()方法检索 // 查询age20的所有的信息var works []Workresult db.Where(age ?, 20).Limit(1).Find(works)if result.Error ! nil {if errors.Is(result.Error, gorm.ErrRecordNotFound) {fmt.Println(没找到记录)return}fmt.Println(result.Error)return}fmt.Println(result.RowsAffected)for i, work : range works {fmt.Println(i, work)}3、根据指定字段查询 // 指定结构体查询字段var work2 []Workresult11 : db.Select(name,age).Where(age ?, 20).Limit(2).Find(work2)if result.Error ! nil {if errors.Is(result11.Error, gorm.ErrRecordNotFound) {fmt.Println(没找到记录)return}fmt.Println(result11.Error)return}fmt.Println(result11.RowsAffected)for i, work : range work2 {fmt.Println(i, work)}四、更新 1、Save() 保存多个字段 Save 会保存所有的字段即使字段是零值 保存 是一个组合函数。 如果保存值不包含主键它将执行 Create否则它将执行 Update (包含所有字段)。 works : []Work{{User: User{Name: 张三, Age: 18}, Work: 程序员},{User: User{Name: 李四, Age: 19}, Work: 程序员},{User: User{Name: 王五, Age: 20}, Work: 程序员},}result : db.Save(works)if result.Error ! nil result.RowsAffected 0 {fmt.Println(保存失败)return}fmt.Println(保存成功)2、更新单个字段 可以使用主键查询也可以是使用某个特定的字段查询也可以同时使用查询。 // 根据表的name进行修改信息result : db.Model(Work{}).Where(name?, 张三).Updates(map[string]interface{}{age: 112, work: 大佬})if result.Error ! nil {panic(result.Error)}if result.RowsAffected 0 {panic(没有更新数据)}fmt.Println(result.RowsAffected)// 根据id修改信息var w Workw.ID 1result db.Model(w).Updates(map[string]interface{}{age: 32, work: 行长})if result.Error ! nil {panic(result.Error)}if result.RowsAffected 0 {panic(没有更新数据)}fmt.Println(result.RowsAffected)五、删除 如果你的模型包含了 gorm.DeletedAt字段该字段也被包含在gorm.Model中那么该模型将会自动获得软删除的能力 当调用Delete时GORM并不会从数据库中删除该记录而是将该记录的DeleteAt设置为当前时间而后的一般查询方法将无法查找到此条记录。 软删除 // 根据主键删除var w Workw.ID 7// db.Delete(Work{}, 8) //一样的result : db.Where(age ?, 98).Delete(w)if result.Error ! nil {panic(result.Error)}if result.RowsAffected 0 {panic(没有删除任何数据)}fmt.Println(result.RowsAffected)物理删除 // 物理删除主键为 5 6的两条信息 db.Unscoped().Delete(Work{}, 5, 6)
http://www.zqtcl.cn/news/528313/

相关文章:

  • 网站首页制作方案南通市规划建设局网站
  • 网站建设费用兴田德润团队西宁网站策划公司
  • 手机价格网站建设用别人备案域名做违法网站
  • 成都武侯区建设厅官方网站石家庄住房和城乡建设部网站
  • 前端做网站的步骤酉阳网站建设
  • 湖北省住房与建设厅网站php做网站访问记录
  • 做网站的公司没有技术吉林北京网站建设
  • 产品设计培训机构哪家好贵州整站优化seo平台
  • 天津网站制作推广wordpress 果酱
  • 写给初学网站开发们的一封信企业网站建设 ppt
  • 做装修网站多少钱做网站百度一下
  • 用asp做网站的可行性分析9免费建网站
  • 网站域名注册商查询徐州集团网站建设报价
  • 句容网站设计公司做网站充值犯法吗
  • 网站建设所用系统网站备案目的
  • 苏州做网站优化公司哪家好网站的大小
  • 四川省住房和城乡建设厅官方网站网站建设图标图片
  • 做影视网站侵权吗评论凡科网站建设怎么样
  • 建设个人网站流程建设游戏网站需要哪些设备
  • 四字母net做网站怎么样河南做网站优化
  • 怎样做网站快照网站当前位置怎么做
  • 网站模板移植现在c 做网站用什么框架
  • 国内专业的室内设计网站盐城网站开发代理商
  • 外贸网站建设 评价wordpress 函数调用
  • 广告支持模式的网站二级域名做网站域名
  • 空间 两个网站购物网站建设图标大全
  • 17.zwd一起做网站广州网站制作费用
  • 如何选择网站建设公司网站开发公司vue框架
  • 网站建设设计外包公司360个人网站建设
  • 什么网站专做店铺公司注销的网站备案