毕设的学习(8) spring boot mybatis 动态sql

https://blog.csdn.net/wangb_java/article/details/73657958

 

http://www.blogjava.net/dbstar/archive/2011/08/08/355825.html

 

https://blog.csdn.net/qq_36872046/article/details/80291939

 

Map<String, String> conditionMap = new HashMap<>();
conditionMap.put("material_user_name", "Tst");
controller里设置map

/**
* 根据查询条件查询材料
* @param condition 前端传入的条件,通过内部类进行拼接sql语句
* @return 材料List
*/
@SelectProvider(type=MaterialsDaoProvider.class,method = "getMaterialsByCondition")
List<Materials> getAllByCondition(Map condition);


class MaterialsDaoProvider{
public String getMaterialsByCondition(Map condition) {
return new SQL(){{
SELECT("*");
FROM("materials");
WHERE("material_user_name like '%"+condition.get("material_user_name")+"%'");
}}.toString();
}
}


也可以先把condition里的值取出来
class MaterialsDaoProvider{
public String getMaterialsByCondition(Map condition) {
Object material_user_name = condition.get("material_user_name");
return new SQL(){{
SELECT("*");
FROM("materials");
if (null != material_user_name){
WHERE("material_user_name like '%${material_user_name}%'");
}
}}.toString();
}
}
如果使用这种模糊查找,不能使用#{material_user_name}

必须使用$

#是起的占位符的作用,但是写在了字符串里面无法起到占位符的作用,这是我们要用 $



欢迎大家关注我的微信公众号,获取你不知道的宝藏。

 

posted @ 2019-10-20 09:15  代码改变我的世界  阅读(289)  评论(0编辑  收藏  举报