org.zhao.com 2016-07-07 10:26 采纳率: 83.3%
浏览 10735

mybatis 查询不出结果,但是打印的SQL 可以执行

我今天发现了一个非常诡异的错误,我在此请求大家集思广益一下.

我的系统采用的是 spring + mybatis ,我在做一个简单的数据查询的时候碰到查询不出来的问题,开始我认为是 resultMap 配置有问题,后台我测试很多遍发现不是这个原因, 最后我发现一个诡异的事情,

List resList = sysUserAccountService.selectByParam(sysUserAccount);
这个语句是一个简单的调用service 在调用--> mapper 的简单查询,在我采用 (1) 号 写法的时候 ,可以正常返回 LIST
但是采用 (2) 号 写法的时候,,,LIST = null
也就是说我无法带值进去查询,但是写 where id is not null 是可以查询到, 写 where id = 'A001' LIST 就是 等于NULL

另外一个问题就是,某些SQL语句, JAVA 调用DAO方法的结果为NULL的时,mybatis 的日志打印出来的SQL 我试着放到 数据库工具中运行是有结果,也就代表SQL 肯定没写错.

selelect (1) 号

<select id="selectByParam" resultMap="AccountBaseResultMap" parameterType="org.androidpn.server.model.SysUserAccount">
        select * from sys_user_account
    </select>

1号 返回结果正常,LIST收到100多个记录

selelect (2) 号

 <select id="selectByParam" resultMap="AccountBaseResultMap" parameterType="org.androidpn.server.model.SysUserAccount">
        select * from sys_user_account
        where ACCOUNT_TYPE = 3
</select>

2号 JAVA LIST 接收到的为一个空LIST ,LIST 中的元素为 null SIZE 为 0. 里面的值我都写死了,排除了传值问题,所有这么写

3号

    <select id="selectByParam" resultMap="AccountBaseResultMap" parameterType="org.androidpn.server.model.SysUserAccount">
        select * from sys_user_account
        where ACCOUNT_TYPE is not null
    </select>

结果是正常,查询到了所有 TYPE 不为空的

我感觉很奇怪,找了很久都没有找到问题,希望有人能帮帮我.

  • 写回答

2条回答 默认 最新

  • yu578707139 2018-05-12 07:23
    关注

    这个问题我也碰到,这里也有人碰到同样的问题:

    https://bbs.csdn.net/topics/392215993?page=1#post-403224823

    评论

报告相同问题?

悬赏问题

  • ¥15 chaquopy python 安卓
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题