mybatis利用generator自动生成的代码学习篇

来源:互联网 发布:北京手机数据恢复公司 编辑:程序博客网 时间:2024/05/21 00:55

XXXExample类的学习

这个一般是用来帮助codeMan自定义查询用的类
里面有几个类
Criterion是最基本,最底层的Where条件,用于字段级的筛选,可以理解为每一个字段的where条件查询sql 片段

public static class Criterion {    private String condition;//where 后面的条件    private Object value;    private Object secondValue;    private boolean noValue;    private boolean singleValue;    private boolean betweenValue;    private boolean listValue;    private String typeHandler;

Criteria类—-可以把它想成where条件的集合
Criteria包含一个Criterion的集合,每一个Criteria对象内包含的Criterion之间是由AND连接的,是逻辑与的关系。


protected abstract static class GeneratedCriteria {
protected List<Criterion> criteria;
}

oredCriteria
Example内有一个成员叫oredCriteria,是Criteria的集合,就想其名字所预示的一样,这个集合中的Criteria是由OR连接的,是逻辑或关系。oredCriteria就是ORed Criteria。

protected List oredCriteria;

//一点新建一个UserExample 就会new 一个oredCriteria Listpublic UserExample() {    oredCriteria = new ArrayList<Criteria>();}//证明使用or连接的 public void or(Criteria criteria) {    oredCriteria.add(criteria);}public Criteria or() {    Criteria criteria = createCriteriaInternal();    oredCriteria.add(criteria);    return criteria;}UserMapper.xml中的定义<sql id="Example_Where_Clause" ><where >     <foreach collection="**oredCriteria**" item="criteria" separator="**or**" >           <if test="criteria.valid" >

Example类的distinct字段用于指定DISTINCT查询。

orderByClause字段用于指定ORDER BY条件,这个条件没有构造方法,直接通过传递字符串值指定。

0 0
原创粉丝点击