java|MyBatis-plus映射和golang映射对比
- 游戏开发
- 2025-08-24 14:30:02

文章目录 Java实体类和数据库的映射1.默认驼峰命名规则2.自定义字段映射3.关闭驼峰命名规则4.JSON序列化映射 Golang1. 结构体与表的映射2. 字段与列的映射3. 关联关系映射4. 其他映射相关标签 这篇也是做数据库映射方面的对比: Java 实体类和数据库的映射 1.默认驼峰命名规则
MyBatis-Plus默认会将数据库表字段名(下划线命名)映射到实体类属性名(驼峰命名)。例如:
数据库表字段名:user_name 实体类属性名:userName
2.自定义字段映射可以通过@TableField注解或XML映射文件手动指定字段名与属性名的映射关系。
3.关闭驼峰命名规则通过配置map-underscore-to-camel-case为false关闭默认的驼峰命名映射。 在application.yml中配置:
mybatis-plus: configuration: map-underscore-to-camel-case: false在application.properties中配置:
mybatis-plus.configuration.map-underscore-to-camel-case=false 4.JSON序列化映射结合@JsonProperty或@JSONField注解,可以将实体类属性名映射到JSON字段名。 通过以上方法,可以在MyBatis-Plus中灵活地定义实体类与数据库以及JSON的映射关系。
GolangGORM 的映射包括结构体与表的映射、字段与列的映射、关联关系映射等。
1. 结构体与表的映射GORM 默认会将结构体名称的复数形式作为表名,例如 User 结构体对应的表名默认为 users。也可以通过 gorm:“table:your_table_name” 标签来指定表名。 db.AutoMigrate(&User{}) 会根据 User 结构体的定义自动创建或更新对应的数据库表。
package main import ( "gorm.io/driver/sqlite" "gorm.io/gorm" ) // User 结构体 type User struct { gorm.Model Name string Email string } func main() { db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{}) if err != nil { panic("failed to connect database") } // 自动迁移表结构 db.AutoMigrate(&User{}) } 2. 字段与列的映射GORM 默认会将结构体字段名转换为蛇形命名(snake_case)作为列名,例如 UserName 字段对应的列名默认为 user_name。也可以通过 gorm:“column:your_column_name” 标签来指定列名。
3. 关联关系映射一对多主要通过外键来实现,多对多通过标签实现,比如下面就是多对多的示例。
type User struct { gorm.Model Name string Roles []Role `gorm:"many2many:user_roles;"` } type Role struct { gorm.Model Name string Users []User `gorm:"many2many:user_roles;"` } 4. 其他映射相关标签gorm:“primaryKey”:指定字段为主键。 gorm:“unique”:指定字段为唯一约束。 gorm:“not null”:指定字段为非空约束。
java|MyBatis-plus映射和golang映射对比由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“java|MyBatis-plus映射和golang映射对比”