full-stack 全栈
schema 约束
/**
* script : 此select中使用的sql脚本
* 建议直接粘贴, 去掉换行符
*/@Select("select * from user "+ "" + "" + "and username = #{username}" + "" + "" + "and sex = #{sex}" + "" + "" + "")public ListfindAllUser(User user);
/** * @SelectProvider:查询语句的提供者
* type:语句提供者的自字节码
* method:对用的方法名称
*/@SelectProvider(method = "getSql", type = SqlSelectProvider.class)public List findAllUser2(User user);
public class SqlSelectProvider {
public String getSql(User user) {
//需要借助mybatis提供的一个对象: SQL
return new SQL() {
//拼接Sql语句
{
SELECT("*"); //代表查询 select *
FROM("user"); //代表 select * from user
// WHERE(" username = #{username} "); //凭借查询条件 : sql= select * from user where username = ?
if (user.getUsername() != null && user.getUsername() != "") {
WHERE(" username = #{username} ");
}
if(user.getSex() != null && user.getSex() != "") {
WHERE(" sex = #{sex} ");
}
}
}.toString();
}
}
在多对多查询过程中:
先使用一个一对多;
然后再使用用一个一对多;
网友评论