mybatis数据库字段名和实体类属性名不一致(四)
2019-03-11 19:20
232 查看
一、问题出现原因
分析:如果数据库中有一些字段是user_name等复杂方式命名,而数据库实体类中的相应字段是username,这种情况常常会导致我们数据库语句查询不到报错,主要原因就是数据库字段映射不到实体类上,解决这个问题的方案主要有三种方式:
1、在sql语句中使用别名:
[code]<select id="queryUserById" resultType="com.zpc.mybatis.pojo.User"> select tuser.id as id, tuser.user_name as userName, tuser.password as password, tuser.name as name, tuser.age as age, tuser.birthday as birthday, tuser.sex as sex, tuser.created as created, tuser.updated as updated from tb_user tuser where tuser.id = #{id}; </select>
2、resultMap强制映射的方式解决
[code] <resultMap id="user" type="com.achuan.demo.entity.User"> <id column="id" property="id" jdbcType="INTEGER"/> <result column="user_name" property="username" jdbcType="VARCHAR"/> <result column="telephone" property="telephone" jdbcType="VARCHAR"/> <result column="imax_email" property="iMaxEmail" jdbcType="VARCHAR"/> <result column="sex" property="sex" jdbcType="VARCHAR"/> <result column="age" property="age" jdbcType="INTEGER"/> </resultMap>
3、驼峰匹配 — mybatis-config.xml
在mybatis全局文件中加入下面这个配置
[code]<configuration> <!-- 开启驼峰映射 ,为自定义的SQL语句服务--> <!--设置启用数据库字段下划线映射到java对象的驼峰式命名属性,默认为false--> <settings> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> </configuration>
相关文章推荐
- Mybatis总结(3)--之数据库字段名和实体类属性名不一致
- Mybatis-实体类属性名与数据库字段名不同的查询方法
- MyBatis学习笔记-03.MyBatis中五种成功映射数据库字段与实体类属性不一致的解决方案
- Mybatis实体类属性与数据库字段不一致解决办法
- MyBatis实体类属性名与数据库字段名不同的解决方案
- 在Mybatis中,解决数据库字段名与java实体类属性名不一致的三种方式
- MyBatis中五种成功映射数据库字段与实体类属性不一致的解决方案
- mybatis连接数据库怎么解决数据库列名和程序属性名不一致的问题
- Mybatis 当实体属性与数据库字段不一致时的解决方案
- 字段名与实体类属性不匹配([尚硅谷]_张晓飞_Mybatis 学习笔记二)
- Mybatis属性和数据库表字段不一致处理
- Mybatis 当实体属性与数据库字段不一致时的解决方案
- Mybatis高级映射之-数据库字段跟实体类名称不一致时的处理
- Mybatis框架之解决列名(表中的字段名称)和实体类中的属性名不一致
- 解决mybatis generator生成实体类和数据库字段名不一致
- Mybatis中解决数据库字段名与实体类属性名不同的问题
- mybatis(四)——mybatis解决数据库表字段名与实体类属性名不同的冲突
- mybatis中的select 出现实体类属性名与表属性名不一致的解决方法
- 使用Mybatis时实体类属性名和表中的字段名不一致导致结果无法映射到实体类的解决办法
- 4、Mybatis中实体类bean的属性名与数据库表中对应字段名不同