1、创建 sql 提供类。
2、将 sql 提供类,注解到 Mapper类中
1、第一步,编写 sql 语句提供类。
public class SqlProvider {
/**
* 第一种方式
* @param user
* @return
*/
public String getUser(User user){
StringBuffer sql = new StringBuffer("select * from user where 1=1");
if(user.getId()!=0){
sql.append(" and id=#{id} ");
}
if(user.getName()!=null){
sql.append(" and name = #{name}");
}
System.out.println(sql.toString());
return sql.toString();
}
/**
* 第二种方式
* @param user
* @return
*/
public String getUser1(User user) {
return new SQL() {{
SELECT("*");
FROM("user");
if(user.getId()!=0){
WHERE(" id=#{id} ");
}
if(user.getName()!=null){
WHERE(" name = #{name}");
}
}}.toString();
}
}
第二步:在 Mapper 类中添加注解:(完成)
@SelectProvider(type = SqlProvider.class,method = “getUser”)
@SelectProvider(type = SqlProvider.class,method = "getUser")
public List<User> getUser(User user);
本文介绍了一种使用MyBatis实现动态SQL的方法。通过创建SQL提供类,并将其注解到Mapper类中,可以根据传入参数的不同动态生成SQL查询语句。文章提供了两种实现方式的代码示例。
3万+

被折叠的 条评论
为什么被折叠?



