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

<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的包换了两个了,不知道是哪里的问题


月关宝盒
浏览 779回答 3
3回答

隔江千里

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

阿晨1998

建议你网上查查#与$区别:在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$'
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java