解决mybatis映射结果集失效的问题
- 更新时间:2023-01-16 09:39:06
- 编辑:巴水风
在开发中可能会遇到这样的问题,使用mybatis进行结果集与实体类之间的关系映射时,可能会出现某些属性映射不上去的情况.
为了方便排查问题我们需要查看mybatis访问数据库SQL信息。
可以在配置Log4J:
log4j.logger.com.xxx.dao=TRACE log4j.logger.com.ibatis.common.jdbc.SimpleDataSource = DEBUG log4j.logger.com.ibatis.common.jdbc.ScriptRunner = DEBUG log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate = DEBUG log4j.logger.java.sql=debug log4j.logger.java.sql.Connection = DEBUG log4j.logger.java.sql.ResultSet = DEBUG log4j.logger.java.sql.Statement=debug log4j.logger.java.sql.PreparedStatement=debug,stdout
注意:log4j.logger.com.xxx.dao=TRACE,一定要加上,加上这句话就可以打印出你访问数据库返回的结果集,可以更加方便的找到问题的所在。这句话的中的com.xxx.dao代表的是mapperw文件的namespace。
解决方案一:
查看映射结果集的配置文件:
如果像上述的配置文件会出现问题,因为在property后面的字符串出现了空格,在这种情况下,mybatis是无法映射的,它会认为id空格 != id。于是返回默认的对应的规则,当实体类中的属性与表中的字段完全相同则可以默认对应,当出现_时无法对应,这时,就会产生有的字段可以映射有的字段不可以映射的情况。所以我们必须检查是否出现空格。
修改配置文件如下:
解决方案二:
直接为结果集取别名,将返回的结果集全部取别名,跟实体类的属性保持一致,这样就能完整的映射。
补充知识:关于mybatis mapper.xml中 sql使用 in 执行失败的原因
mapper.xml传参如果下
user_obj_id in ( #{ids})
最终执行的sql拼接如下
user_obj_id in ( ‘55,56,57' )
而不是期望的
user_obj_id in ( ‘55',‘56',‘58' )
以上这篇解决mybatis映射结果集失效的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。
相关教程
-
mybatis 实现多条update同时执行
给大家整理一篇关于mybatis的教程,这篇文章主要介绍了mybatis 实现多条update同时执行,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
发布时间:2023-01-06
-
Mybatis动态SQL的实现示例
给网友朋友们带来一篇关于Mybatis的教程,这篇文章主要介绍了Mybatis动态SQL的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
发布时间:2022-06-17
-
深入理解Mybatis分页插件使用方法
这篇文章主要为大家详细介绍了Mybatis分页插件的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
发布时间:2020-02-29
-
mybatis注解配置的学习笔记
本篇文章主要介绍了mybatis学习笔记之mybatis注解配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
发布时间:2019-06-21
-
MyBatis insert操作插入数据之后返回插入记录的id
给网友朋友们带来一篇关于MyBatis的教程,今天小编就为大家分享一篇关于MyBatis插入数据之后返回插入记录的id,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
发布时间:2022-06-22
-
Spring Boot整合mybatis多数据源用法
这篇文章主要介绍了Spring Boot 整合mybatis 使用多数据源的实现方法,需要的朋友可以参考下
发布时间:2020-01-07
-
mybatis 传入null值的解决方案
这篇文章主要介绍了mybatis 传入null值的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
发布时间:2022-04-25
-
详解mybatis foreach collection示例
给网友们整理关于mybatis的教程,这篇文章主要介绍了详解mybatis foreach collection的相关资料,需要的朋友可以参考下
发布时间:2022-06-14