Dao层使用like对于关键字的模糊查询

今天在做开发的时候需要使用like 对关键字进行模糊查询,可是总是写不好,多次尝试发现有许多坑,在此记录下:

//错误,后面参数实际传入mysql服务中会变为 %'?'%
String sql = "select * from user where ? like  %"+?+"%"; 
Object[] obj = {field,key};
ResultSet resultSet = dbUtil1.select(sql,objects);


//错误,因为field传进去mysql中会 变成 'field'
String sql = "select * from user where ? like ?;
Object[] obj = {field,"%"+key+"%"};
ResultSet resultSet = dbUtil1.select(sql,objects);


//正确写法,注意:filed前后引号后要加空格 “ ”
String sql = "select * from user where "+ filed +" like ?;
Object[] obj = {"%"+key+"%"};
ResultSet resultSet = dbUtil1.select(sql,objects);
Logo

更多推荐