为了账号安全,请及时绑定邮箱和手机立即绑定

ibatis传参数用#stuid#传不进去,用$stuid$就可以,大家看看为什么啊?

ibatis传参数用#stuid#传不进去,用$stuid$就可以,大家看看为什么啊?

月关宝盒 2019-03-12 14:19:13
<typeAlias alias="product" type="com.cms.pojo.TBankproddata" /> <select id="getProd" parameterClass="java.util.Map" resultClass="product">     select stuid,stuname   from student   stuid = '$stuid$' </select>这是sql语句,现在可以查询出来泛型的list,但是我换成#stuid#,就是空的,不报错,返回的list为空,郁闷啊,ibatis的包换了两个了,不知道是哪里的问题
查看完整描述

3 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

请问丢进来的stuid是Map么?你XML里参数写着parameterClass="java.util.Map"
我看你的SQL语句,判断stuid就是一个普通类型吧 这个不应该是parameterClass="java.lang.String"或者parameterClass="java.lang.Integer"吗?
照样用##吧

查看完整回答
反对 回复 2019-04-29
?
阿晨1998

TA贡献2037条经验 获得超6个赞

建议你网上查查#与$区别:
在Ibatis中我们使用SqlMap进行Sql查询时需要引用参数,在参数引用中遇到的符号#和$之间的区分为,#可以进行与编译,进行类型匹配,而$不进行数据类型匹配,例如:

select * from table where id = #id# ,其中如果字段id为字符型,那么#id#表示的就是'id'类型,如果id为整型,那么#id#就是id类型。

select * from table where id = $id$ ,如果字段id为整型,Sql语句就不会出错,但是如果字段id为字符型,那么Sql语句应该写成 select * from table where id = '$id$'


查看完整回答
反对 回复 2019-04-29
  • 3 回答
  • 0 关注
  • 778 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信