请教一下mybatis返回数据结果集为0,数据库查询有数据是怎么回事?

weixin_39322425 2017-08-15 11:53:14
我把控制台答应的sql复制到数据库查询是有数据的,但是mybatis的返回结果数量是0条,请教一下可能是什么原因导致的?
...全文
9681 58 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
58 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyer_ly 2020-10-03
  • 打赏
  • 举报
回复
你查询的一个字段,用map查询当然没法查出来,插件没那么智能(你指望它怎么封装返回数据?以什么为键?)。
weixin_42278189 2020-10-02
  • 打赏
  • 举报
回复
可能是编码格式不对,拼接在后面的string乱码了,在数据库连接文件的URL后面添加?characterEncoding=utf-8 jdbc.properties上添加url=jdbc:mysql://localhost:3306/crud?characterEncoding=utf-8
OneBaiY 2020-08-19
  • 打赏
  • 举报
回复
查看下数据库的驱动,注意字符集
Fish_Yu_007 2020-08-19
  • 打赏
  • 举报
回复
看看查询字段的内容 有没有空格
  • 打赏
  • 举报
回复
列名是不是也用变量绑定的? 比如 where ? = ? 如果是的话,列名用${xxx} 取值, 值用#{xxx}取值就行了 为了避免sql注入。列名的变量最好在后端定义,不要从前端接收变量
古天乐本乐 2020-01-16
  • 打赏
  • 举报
回复
引用 50 楼 suvren 的回复:
我也遇到同查的问题,之前一直正常,突然不行了,最后发现还是参数问题,在传参前用trim()方法去一下空格就可以了。
这个是正解
seMiColon77 2019-11-11
  • 打赏
  • 举报
回复
引用 44 楼 yu578707139的回复:
我也出现这个问题,用的是mybatis 3.4.4,mybatis-spring 1.3.1,oracle11g2 同样是通过navicat for oracle执行控制台输出的sql语句有记录,但是mybatis返回0
你解决了吗,我和你差不多
qhn83329580 2019-03-13
  • 打赏
  • 举报
回复
最后有结果么
子介 2018-10-12
  • 打赏
  • 举报
回复
可以试着吧, #{} 参数写成, ${} 这样不会类型转化
suvren 2018-07-06
  • 打赏
  • 举报
回复 1
我也遇到同查的问题,之前一直正常,突然不行了,最后发现还是参数问题,在传参前用trim()方法去一下空格就可以了。
wangxiaoyang909 2018-06-22
  • 打赏
  • 举报
回复
楼主你传的参数有问题,你传的是字符串是有问题的,,你传的是“400311”,但是应该是400311,因为后面的(String)会给你作转换的
weixin_40852944 2018-06-22
  • 打赏
  • 举报
回复

感觉被这问题折腾的。。。
你把xml文件的 resultType="java.lang.Map" 改成 resultType="java.lang.Long" 就可以了吧?然后结果集用List<Long> 类型来接收
聴説_er 2018-06-22
  • 打赏
  • 举报
回复
<resultMap id="BaseResultMap" type="com.yunchang.entity.Log">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="userid" jdbcType="INTEGER" property="userid" />
<result column="licenseid" jdbcType="INTEGER" property="licenseid" />
<result column="type" jdbcType="TINYINT" property="type" />
<result column="action" jdbcType="VARCHAR" property="action" />
<result column="datetime" jdbcType="TIMESTAMP" property="datetime" />
</resultMap>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from log
where id = #{id,jdbcType=BIGINT}
</select>


你可以参考下这样
热爱生活~~~ 2018-06-21
  • 打赏
  • 举报
回复
试一下14楼的方法,如果是使用bean传值的话,只要传bean就行。使用参数的话,就需要14楼的方法,不然会报错。还有就是你dao那边参数的类型和mapper那边的参数要一致。如下:
/**
* 查询所有班级信息
*/
List<Map<String, Object>> findAllclass(@Param("begin")Integer begin,@Param("endss")Integer endss,@Param("name")String name);

<select id="findAllclass" resultType="map">
SELECT c.*,m.majors_name FROM classs c,majors m WHERE c.majors_id=m.id
<if test="name != null and name!= '' "> and class_name like CONCAT('%',#{name},'%')</if>
ORDER BY c.majors_id
LIMIT #{begin},#{endss}
</select>
naxnrod 2018-06-20
  • 打赏
  • 举报
回复
这里挖一下,刚遇到,前后能看到的地方都觉得是对的,改成死数值能查到结果,那肯定是参数问题,前后又看一遍,所有参数传递都是对的,最终查到源头,参数的取值,从 (' ${di.dn_id} ')这里开始是为了美观,因为写下来的时候括号是歪的,我就以为可能前后要留个空让括号自适应变成正常的样子,结果改了后括号还是那样子,我就没管,保存了做其他了,现在回过头再看,这边取值的时候,取出的值前后都是有空格的,所以其实传递的参数一直是个错误的参数,但是从后台system.out.print又能看到正确的参数打印,一直误导着自己没去看最开始的取值。好了我的解决过程就是这样。不知道有没有帮助。
yu578707139 2018-05-12
  • 打赏
  • 举报
回复
我也出现这个问题,用的是mybatis 3.4.4,mybatis-spring 1.3.1,oracle11g2 同样是通过navicat for oracle执行控制台输出的sql语句有记录,但是mybatis返回0
愛殤 2018-03-23
  • 打赏
  • 举报
回复
查詢只需要寫<select id="findUsername" resultType="cn.zzq.bean.UserBean" parameterType這個寫了不行
qq827010202 2018-03-22
  • 打赏
  • 举报
回复
返回List就可以返回List<Map>是什么鬼
gy_2154317786_gy 2018-03-22
  • 打赏
  • 举报
回复
今天正好也遇到找个问题,拖到中午刚解决,我的问题是由于参数里边有空白符或换行符照成的
爱写Bug的麦洛 2018-03-21
  • 打赏
  • 举报
回复
检查下数据库配置文件,看看是不是数据库连接错了
加载更多回复(38)

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧