关于mybatis中@SelectProvider的一点疑惑
现在使用mybatis中的@SelectProvider去实现查询逻辑,查询条件是自定义的Map<String,Object> query,query中放入查询的字段和值,假如我放置id,则根据id查询,假如放置username和id,则根据username和id查询,代码实现如下:
Usermapper代码:
public interface UserMapper {
@SelectProvider(type=UserMapperProvider.class,method="find")
public List<User> find(Map<String,Object> query);
}
UserMapperProvider代码:
import java.util.Map;
class UserMapperProvider{
public static String find(Map<String, Object> query) {
StringBuffer buffer = new StringBuffer();
buffer.append("SELECT * FROM user WHERE 1=1 ");
if(query.get("id")!=null){
buffer.append("AND id = #{id} ");
}
if(query.get("username")!=null){
buffer.append("AND username = #{id} ");
}
if(query.get("gender")!=null){
buffer.append("AND gender = #{gender} ");
}
if(query.get("email")!=null){
buffer.append("AND email = #{email} ");
}
return buffer.toString();
}
}
service层:
@Service("userService")
public class UserServiceImpl{
@Resource
private UserMapper userMapper;
/*
* 根据query条件,查询User
*
*/
public List<User> find(Map<String,Object> query) {
return userMapper.find(query);
}
}
问题是
@SelectProvider(type=UserMapperProvider.class,method="find")
public List<User> find(Map<String,Object> query);
好像有问题,这边的参数是如何传递的呢?当条件是Map<String,Object> query或者List或者自定义的时候,如果实现?
相关推荐
Mybatis SelectProvider
Mybatis 中@SelectProvider @InsertProvider、@UpdateProvider、@DeleteProvider
逻辑表达式& | ! 转sql逻辑查询 and or not 逻辑表达式转sql逻辑查询 使用mybatis @SelectProvider
查询需求 输入格式 处理过程 //keywords 为输入 逻辑查询关键词 public List countList(String keywords) { //逻辑语句转换 String title = ExpToSqlUtils.expToSql(keywords, title, like , 1); //查询结果 List list = testMapper.getList(title); return list ; } 转换过程 import org.apache.comm
Spring+SpringMVC+Mybatis多数据源
Spring+SpringMVC+Mybatis多数据源整合。基于spring3.0和mybatis3.2的
springbootmybatis:springboot+mybatis , 加入了用户模块,登陆,CURD等操作,自定义异常, 读取表生成mybatis mapper的xml配置文件,以及model类的属性,减少一点照着打字的麻烦
#bysj springboot+mybatis , 加入了用户模块,登陆,CURD等操作,自定义异常, 读取表生成mybatis mapper的xml配置文件,以及model类的属性,减少一点照着打字的麻烦
tk.mybatis扩展通用接口使用详解
主要介绍了tk.mybatis扩展通用接口使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下



