0%

mybatis两种动态引用的的区别

#{}使用的是预编译对应JDBC中的PreparedStatement

${}mybatis不会修改或者转义字符串,直接输出变量值

使用#{}可以防止sql注入

使用#{}包裹的语句会加上单引号

会使得部分语句失效

如创建mysql表的时候,只能使用${}

1
2
3
4
5
6
7
8
9
10
<update id="createByTableName" >
create table ${CreateTable.tableName} (
id int(11) ,
<foreach collection="CreateTable.tableList" index="index" item="item">
${ item } varchar(64) ,
</foreach>
PRIMARY KEY (id)

);
</update>