在我目前正在参与的操作项目中,主要使用了Golang语言开发工程,探究其中涉及到很多数据库的简据库操作,我主要使用了GORM,化数在这里也推荐给大家。操作
在现代软件开发中,探究与数据库打交道是简据库一个常见的任务。数据库是化数我们存储和检索数据的关键工具,而访问数据库通常需要大量的操作编码工作。但是探究,有一种技术可以极大地简化这个过程,简据库那就是化数对象关系映射,简称ORM。
ORM是一种编程技术,它将对象和关系数据库之间的数据映射起来。它允许开发人员使用面向对象的方式来处理数据库操作,而不必编写复杂的SQL查询。ORM工具将数据库表映射到编程语言中的对象,允许您通过操作对象来执行数据库操作。
ORM的好处:简化数据库访问、提高可移植性、减少错误、提高并发等
开发人员可以使用编程语言的对象和方法来执行数据库操作,而不必深入了解SQL。ORM通常支持多种数据库,使应用程序更容易在不同的数据库系统之间迁移。
golang gorm的使用
GORM是一种基于Go语言的ORM库,它提供了强大的数据库访问和查询功能。它是Go语言社区中最受欢迎的ORM工具之一,因为它简化了与数据库的交互,并提供了丰富的功能。Gorm也是我目前我在项目中使用的一种ORM,也向大家推荐使用,GORM的主要功能包括:
通过Gorm创建数据库,只需要定义对应的表即可,例如:
// FwsScenicModel 基础模型type FwsScenicModel struct { ID uint `gorm:"primaryKey"` CreatedAt time.Time UpdatedAt time.Time DeletedAt sql.NullTime}// FwsSysConfigs 系统配置表type FwsSysConfigs struct { FwsScenicModel Index string `gorm:"uniqueIndex;size:255"` AiComUrl string WxAppid string WxAppSecret string}// FwsSysUsers 系统用户表type FwsSysUsers struct { FwsScenicModel UserId string UserName string `gorm:"uniqueIndex;size:255"` UserPwd string UserRealName string UserRoleId string UserState string UserDesc string}
连接数据库、创建数据表,迁移数据,例如:
dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local", config.MysqlUserName, config.MysqlUserPassword, config.MysqlIP, config.MysqlPort, config.MysqlDbName) GormDB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{ Logger: logger.Default.LogMode(logger.Error), // Print SQL statements DisableForeignKeyConstraintWhenMigrating: true,}) GormSqlDB, err = GormDB.DB() if err != nil { zap.L().Error("dbConnect", zap.Error(err)) return }GormSqlDB.SetMaxOpenConns(100) // 设置最大打开连接数GormSqlDB.SetMaxIdleConns(20) // 设置最大空闲连接数GormSqlDB.SetConnMaxLifetime(time.Hour)GormDB.AutoMigrate(&FwsSysUsers{ }, &FwsSysRoles{ }, &FwsSysConfigs{ })
操作数据:
role := FwsSysRoles{ RoleId: "0", RoleFuncAuth: config.FwsFuncList, RoleName: "超管", RoleState: "enable",}// 使用FirstOrCreate来查找,如果不存在则插入,存在则更新result := GormDB.Where(FwsSysRoles{ RoleId: role.RoleId}).FirstOrCreate(&role)if result.Error == nil { if result.RowsAffected == 0 { // 返回插入记录的条数 updates := map[string]interface{ }{ "role_func_auth": config.FwsFuncList, // 设置要更新的字段 } GormDB.Model(&FwsSysRoles{ }). Where(FwsSysRoles{ RoleId: role.RoleId}).Updates(updates) }}
总的来说,ORM和GORM的组合提供了强大的数据库操作工具,使开发人员能够更轻松地与数据库交互,同时减少了错误和提高了开发效率。
在当今的软件开发中,ORM和GORM已经变得不可或缺。它们不仅简化了数据库操作,还提供了更好的代码组织和可维护性。无论您是刚刚入门还是有经验丰富的开发人员,了解ORM和使用GORM都将大大改善您的数据库访问体验。
责任编辑:姜华 来源: 今日头条 ORMGORM(责任编辑:探索)
中国煤层气(08270.HK)年度亏损收窄至3622.4万元 每股亏损为人民币3.08分
和泓服务(06093.HK)年度净利5635.7万元 每股基本盈利为12.76分