文章目录author: jwensh
date: 2022.06.26
- 命名规范要求
- 方式一:mapper 中使用 @Result 注解
- 方式二:mybatis-config.xml 配置文件
- 参考
- 数据库使用 snake_case 格式命名表名和字段名;
- java 类属性使用 camelCase 命名属性名;
所以产生了一个问题,spring + mybatis 下如何进行 orm 内容映射
方式一:mapper 中使用 @Result 注解 @Select("SELECT * FROM driver_api where is_available = 1 ORDER BY ename ASC")
@Results({
@Result(column = "api_name", property = "apiName" )
})
List getAllDriverApi();
- 在进行 sql 查询和初始化实体时 mybatis 会自动转化,写 sql 语句的时候也不必为有下划线的字段设置与实体类相同的别名;
- 如未加配置之前的 sql 查询语句为:select id, driver_api as driverApi from driver_api
在 spring 项目下 mybatis-config.xml 配置文件中添加如下设置:
或者是在 spring-boot 项目下的配置文件中:
mybatis.configuration.mapUnderscoreToCamelCase = true 或者 mybatis.configuration.map-underscore-to-camel-case = true
在 mybatis 的配置文件里加入如上的配置,就基本不用 xml 中进行字段和实体和属性的映射;
备注:
resultMap 中的 property 属性或别名要和对象中属性的名字相同,但是实际匹配是,MyBatis 会先将两者都转换为大写形式,然后再判断是否相同,即 property=“userName” 和 property=“username” 都可以匹配到对象 userName 属性上。
参考https://mybatis.org/mybatis-3/zh/sqlmap-xml.html



