`

mybatis 模糊查询

 
阅读更多

使用数据库查询数据的时候,绝对会用到like进行模糊查询的,但是在myBatis中怎么实现呢

当时我有两个思路,第一在配置文件中配置, 最开始配置成如下:

 and user_name like %#{userName}%,但是报错

这个错误有两处,一是应该用单引号把%#{userName}%括起来,二是不能用#号,而是改成$号,所以正确的配置应该是 and user_name like '%${userName}%'。

第二个思路是,配置文件不该,还为and user_name like #{userName},而在程序里做手脚,如在给userName赋值的setUserName方法中,使用成this.userName="'%"+userName+"%'"这样

两种方式都可以

但是推荐使用第一种方式,这样不用修改pojo类,不会造成业务逻辑错误

分享到:
评论
5 楼 aa00aa00 2014-10-28  
'%${userName}%' 这种是可以的,是可以模糊查询的!!.
楼主说的是正确的
4 楼 slowvic 2013-02-01  
不能用第一种,破坏了PreparedStatement。
3 楼 timer_yin 2012-03-08  
wcp88888888 写道
timer_yin 写道
我试过还是不行 只能在程序中改

奇怪了,第一种方式我试过呀,是通过测试的,你在多看看,是不是哪里写错了



这么写就对了 like "%"#{username}"%"
2 楼 wcp88888888 2012-03-01  
timer_yin 写道
我试过还是不行 只能在程序中改

奇怪了,第一种方式我试过呀,是通过测试的,你在多看看,是不是哪里写错了
1 楼 timer_yin 2012-02-27  
我试过还是不行 只能在程序中改

相关推荐

Global site tag (gtag.js) - Google Analytics