一、逆向工程
MyBatis的逆向工程不仅仅可以生成和表相对应的实体类还可以根据数据库种的表自动生成Example类,我们可以用Example类
实现条件增删改查而不用自己再去写sql语句。
二、Example类的生成
只要在generatorConfig.xml 文件中用表名生成对应的实体类时将生成Example的信息都变为true即可。
<table tableName="user"
enableCountByExample="true"
enableUpdateByExample="true"
enableDeleteByExample="true"
enableSelectByExample="true"
selectByExampleQueryId="false"
</table>
三、Example类的使用
打开一个Exapmle类我们会看到以下几个成员
protected String orderByClause;
protected Integer start;
protected Integer length;
protected boolean distinct;
protected List<Criteria> oredCriteria;
orderByClause:用于指定ORDER BY条件,这个条件没有构造方法,直接通过传递字符串值指定。
start和length:是分页时用来指定查询第几条数据到第几条数据的。
distinct: 是用来指定是否要去重查询的,true为去重,false不去重。
oredCriteriia:是用来指定查询条件的。
逆向工程生成的文件XxxExample.java中包含一个static 的内部类 Criteria ,在Criteria中有很多方法,主要是定义SQL 语 句where后的查询条件。
四、使用方法
在service种可以这么写
//指定要进行去重查询
userBankCardExample.setDistinct(true);
//指定查询条件
userBankCardExample.createCriteria().andUserIdEqualTo(iptUserBankCard.getUserId());
//调用查询方法
List<UserBankCard> userBankCadList = userBankCardDao.selectByExample(userBankCardExample);
注意:在调用upateExample()是更新所有字段,包括字段为null的也更新,建议使用 updateByExampleSelective()更新想更新的字段