在使用Mybatis的XML文件所遇到的一个坑!

    MyBatis 的xml文件中关于pojo映射的问题

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
但是在MyBatis 的使用过程中,难免不会遇到绞尽脑汁的坑,坑不深,但是掉下去很痛。
在说问题之前,我们先了解下POJO–POJO实质上可以理解为简单的实体类,顾名思义POJO类的作用是方便程序员使用数据库中的数据表,对于广大的程序员,可以很方便的将POJO类当做对象来进行使用,当然也是可以方便的调用其get,set方法。
MyBatis在xml文件中配置查询的结果如果要映射到相应的POJO上,那么需要保证:

  1. 数据库表的字段名称应该与POJO对象的属性名称一致
  2. 在MyBatis配置文件中开启自动驼峰命名规则

然鹅,时候只能保证大部分能够直接在Mybatis 的resultType 属性中自动映射为相应的pojo。如果你的字段带有下划线呢,例如:

class User{
	private String u_user_id;
	private String u_user_name;
}

这样的pojo对象,那么通过mybatis映射回来的结果只能是null;
这个时候我们不用修改数据表字段或者对象属性名称,也不需要别名,我们需要用Mybatis的XML属性<resultMap type="" id=""></resultMap>解决

<resultMap id="MyResultMap" type="User">
    <id column="u_user_id" jdbcType="VARCHAR" property="u_user_id" />
    <result column="u_user_name" jdbcType="VARCHAR" property="u_user_name" />
</resultMap> 

好了,这样就完美解决了,至于为什么mybatis会出现这样的问题,那就是它映射POJO的原理造成的啦,有兴趣的朋友可以看下源码了解一下。

水平有限,只是解决实际业务中遇到问题的方法。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值