概述
example是MyBatis数据层框架中的一个工具,可以帮我们完成sql语句中where条件句的书写,相当于where后面的部分,我们可以根据不同的条件来查询和操作数据库,简化书写sql的过程。
用MyBatis的逆向工程可以自动生成Example类。
Example类的生成
在generatorConfig.xml 文件中用表名生成对应的实体类时将生成Example的信息都变为true即可。
如:
enableCountByExample="true"
enableUpdateByExample="true"
enableDeleteByExample="true"
enableSelectByExample="true"
selectByExampleQueryId="false"
示例:
<table tableName="product" domainObjectName="Product" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="true" selectByExampleQueryId="false">
<property name="my.isgen.usekeys" value="true"/>
<property name="useActualColumnNames" value="true"/>
<generatedKey column="id" sqlStatement="JDBC"/>
</table>
Example类的具体用法
1.xxxExample.java类的属性含义
每个实体类都对应一个xxxExample.java类,这个类可以用来自定义sql,用Mybait自动生成工具生成了这个类后,可以看到类里面一般有这些属性:
orderByClause:用于指定ORDER BY条件,这个条件没有构造方法,直接通过传递字符串值指定。
distinct: 是用来指定是否要去重查询的,true为去重,false不去重。
oredCriteriia:是用来指定查询条件的。
2.内部类 Criteria
Example.java中包含一个static 的内部类 Criteria ,在Criteria中有很多方法,主要是定义SQL 语 句where后的查询条件,Criterion是最基本的Where条件,针对字段进行筛选。
mapper接口中的函数及方法
方法
功能说明
int countByExample(UserExample example) thorws SQLException
按条件计数
int deleteByPrimaryKey(Integer id) thorws SQLException
按主键删除
int deleteByExample(UserExample example) thorws SQLException
按条件查询
String/Integer insert(User record) thorws SQLException
插入数据(返回值为ID)
User selectByPrimaryKey(Integer id) thorws SQLException
按主键查询
ListselectByExample(UserExample example) thorws SQLException
按条件查询
ListselectByExampleWithBLOGs(UserExample example) thorws SQLException
按条件查询(包括BLOB字段)。只有当数据表中的字段类型有为二进制的才会产生。
int updateByPrimaryKey(User record) thorws SQLException
按主键更新
int updateByPrimaryKeySelective(User record) thorws SQLException
按主键更新值不为null的字段
int updateByExample(User record, UserExample example) thorws SQLException
按条件更新
int updateByExampleSelective(User record, UserExample example) thorws SQLException
按条件更新值不为null的字段