ispsh 发表于 2016-11-26 01:04:18

mybatis/ibatis ${}与#{}的区别

1. #id# / $id$
    ibatis比较老的版本使用方式,具体是哪个版本之前不知道,已知的ibatis3.0以上肯定不能再使用了。

<select id="selectStudentById" parameterType="com.bean.student">
select * from student where id= #id#
</select>

其中如果字段id为字符型,那么#id#表示的就是'id'类型,如果id为数值型,那么#id#就是id(数值)类型。

<select id="selectStudentById" parameterType="com.bean.student">
select * from student where id= $id$
</select>

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

2. ${} / #{}
    ibatis和mybatis现都可使用的两种方式。推荐使用#{},可防止sql注入。

<select id="selectStudentById" parameterType="com.bean.student">
select * from student where id= #{id}
</select>

其中如果字段id为字符型,那么#id#表示的就是'id'类型,如果id为数值型,那么#id#就是id(数值)类型。

==>Executing: select * from student where id= ?
==> Parameters: 0(String)


<select id="selectStudentById" parameterType="com.bean.student">
select * from student where id= ${id}
</select>

如果字段id为整型,Sql语句就不会出错,但是如果字段id为字符型,需要加上单引号('')

==>Executing: select * from student where id= '123'
页: [1]
查看完整版本: mybatis/ibatis ${}与#{}的区别