介绍
这篇文章给大家介绍Mybatis中#{}与{}美元有什么区别,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
<强>关于#{}强>
1, #{}表示一个占位符号相当于<代码> jdbc代码>中的> <强大?>强符号#{}实现的是向prepareStatement中的预处理语句中设置参数值,sql语句中#{}表示一个占位符即?
2, #{}将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:<代码> select *从用户id=# {user_id}> 代码,如果传入的值是11日,那么解析成sql时的值为<代码> id=?1”代码>,
3,如果sql语句中只有<代码>一个参数> 代码,此时参数名称可以<代码>随意定义> 代码如果sql语句有<强>多强>个参数,此时参数名称应该是与当前表关联(实体类的属性名)或则[映射集合关键字],<强>不能随便写,必须对应>强壮!如下图
<人物> 图>& lt; select> select *,才能得到emp_ ${一} & lt; select>
再比如MyBatis <强>排序时使用<代码>,代码>动态参数强>时,此时也只能使用$ {}
& lt; select> select *,才能得到dept order by ${名称} & lt;/select>
<强>代码案例强>
一般#{}与{}美元用的比较多的地方是模糊查询方面,所以下面来一个模糊查询的案例
<强>使用#{}案例强>
1,映射文件
在用户。xml配置文件中添加如下内容:
& lt; !——,如果返回多个结果,mybatis会自动把返回的结果放在列表容器中,——比; & lt; !——, resultType的配置和返回一个结果的配置一样,——比; & lt; select id=皅ueryUserByUsername1", parameterType=皊tring" resultType=癱n.itcast.mybatis.pojo.User"比; SELECT *,得到“用户”,WHERE username LIKE # {username} & lt;/select>
2,测试程序
MybatisTest中添加测试方法如下:
@Test public void  testQueryUserByUsername1 (), throws Exception {//,4只;创建SqlSession对象 SqlSession SqlSession =, sqlSessionFactory.openSession ();//,5只执行SqlSession对象执行查询,获取结果用户//,查询多条数据使用selectList方法 List
2。测试程序:MybatisTest中添加测试方法如下:
@Test public void  testQueryUserByUsername2 (), throws Exception {//,4只;创建SqlSession对象 SqlSession SqlSession =, sqlSessionFactory.openSession ();//,5只执行SqlSession对象执行查询,获取结果用户//,查询多条数据使用selectList方法 ListMybatis中#{}与{}美元有什么区别