mybatis解决数字库字段名和实体类字段不一致的方法

mybatis遇到的问题:数据库命名一般以下划线区分出来两个单词,但Java的实体类我们习惯用驼峰命名法,这就导致了表的字段和实体类中的参数对不上,mybatis则不能完成字段的映射。
mybatis提供了一种解决办法:resultMap
可以在mapper文件的头部增加以下示例代码:
<resultMap id="BaseResultMap" type="com.xinchen.pojo.Admin" >
    <id column="admin_id" property="adminId" jdbcType="BIGINT" />
    <result column="admin_name" property="adminName" jdbcType="VARCHAR" />
    <result column="admin_pass" property="adminPass" jdbcType="VARCHAR" />
    <result column="admin_level" property="adminLevel" jdbcType="INTEGER" />

但要注意,使用了resultMap后,需将原来的resultType替换成resultMap。但仅需要把select的resultType=“实体类”换成resultMap=“BaseResultMap”。其他的均不需要替换。
其!他!的!均!不!需!要!替!换!

id设置的是自增长的主键,column设置的是数据库里字段名,property是实体类的属性,jdbcType可以忽略不写。
还有两种解决办法,一是直接在mapper文件中为相关字段设置别名,但这样字段太多的话未免过于麻烦。而是利用mybatis提供的全局属性mapUnderscoreToCamelCase来解决。
代码:
<settings>  
    <setting name="mapUnderscoreToCamelCase" value="true"/>  
</settings>

记住是要配置在mybatis的配置文件中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值