mybatis执行查询语句查询不到结果,控制台输出sql语句复制到数据库中能查到数据
来源:互联网 发布:百乐钢笔淘宝哪家 编辑:程序博客网 时间:2024/04/30 01:58
今天用mybatis查询语句的时候,控制台输出的sql语句可以在mysql中可以正确执行,但是查询出来就是没有数据。
原查询语句如下(为展示问题明确,将sql进行了简化):
<select id="getListByQueryValue" parameterType="Map" resultType="Map"> SELECT * FROM province <where> <if test="strWhere != null and strWhere!= ''"> AND ( #{strWhere} ) </if> </where></select>
此sql可以在mysql中正确执行,但是查询不到数据。
解决办法是:将查询条件中的“#”替换成“$”.
原因如下:
MyBatis看到 #{}会认为你在给sql中的变量赋值,就像JDBC编程中给问号赋值一样(自动在前后加单引号)也就是说,他把你传入的字符串并没有当做多个值,而是当做一个大的字符串,所以查询不到值
而MyBatis看到${}的时候会直接将之替换成变量的值而不做任何处理。
mybatis $ # 具体区别可以参考:这里写链接内容
作者:jiankunking 出处:http://blog.csdn.net/jiankunking
0 0
- mybatis执行查询语句查询不到结果,控制台输出sql语句复制到数据库中能查到数据
- mybatis执行查询语句查询不到结果,控制台输出sql语句复制到数据库中能查到数据
- mybatis执行查询语句,可以在plsql中查询数据,但是在程序中查询不到
- Mybatis中$和#的注入使得在控制台写的sql语句和数据库写的语句查询结果不一致。
- s2sh向数据库插入数据,控制台有打印sql语句,数据库查询不到数据问题
- s2sh向数据库插入数据,控制台有打印sql语句,数据库查询不到数据问题
- mybatis查询入门 (log4j控制台sql语句日记输出)
- Hibernate的hql语句查询不到内容,但是库里有数据,直接执行SQL也能执行,能得到值,返回值取不到
- Hibernate 第一次查询不到结果,以后能查到
- 直接通过SQL能查到,通过HSQL查询不到问题解决
- vc odbc 连接后,执行sql查询语句,怎么输出查询的结果
- MyBatis控制台输出SQL语句
- Oracle采用存储过程执行sql语句,将查询到的数据导出到EXCEL中
- php 数据库可以查到数据的sql语句,在代码里为什么查不到数据
- plsql查询带中文的sql语句查询不到数据
- 控制台输出执行sql语句
- plsql中,sql语句中带有中文的查询条件查询不到数据
- mybatis执行sql检索不到数据,在数据库能成功检索到
- poj 3169 Layout(差分约束,最短路)
- 面试题总结:链表类型
- ios与js交互
- 使用Docker构建持续集成与自动部署的Docker集群
- SpingMVC ModelAndView, Model,Control以及参数传递
- mybatis执行查询语句查询不到结果,控制台输出sql语句复制到数据库中能查到数据
- c 输出格式
- qt 之 QFileSystemModel
- Hibernet DetachedCriteria 对象使用,Mark一下~
- ACM2016多校联赛 Abandoned country 最小生成树
- 简单工厂和工厂方法模式的比较
- Preparing for an Interview (Facebook)
- Hadoop学习闲谈
- android 6.0 权限