mysql example类_[mybatis]Example的用法

本文详细介绍了MyBatis中的Example类,用于构建动态SQL的where子句。通过Example类,可以方便地生成各种复杂的查询条件。文章还提供了创建Example类的配置示例,以及如何使用Example类进行简单和复杂查询的操作方法。同时,讲解了Criteria类及其方法,如ISNULL、ISNOTNULL等,用于构建不同的查询条件。最后,演示了如何实现去重复查询。
摘要由CSDN通过智能技术生成

Example类是什么?

Example类指定如何构建一个动态的where子句. 表中的每个non-BLOB列可以被包括在where子句中. 例子是展示此类用法的最好方式.

Example类可以用来生成一个几乎无限的where子句.

Example类包含一个内部静态类 Criteria 包含一个用 anded 组合在where子句中的条件列表. Example类包含一个 List 属性,所有内部类Criteria中的子句会用 ored组合在一起. 使用不同属性的 Criteria 类允许您生成无限类型的where子句.

创建 Criteria 对象 可以使用Example类中的 createCriteria() 或者 or() . 如果 Criteria 对象是用 createCriteria() 创建的,它会自动为 List 属性添加一个 Criteria 对象 - 这使得它更容易写一个简单的where子句, 如果您不需要 or 或者其他几个子句组合的话. 用 or(Criteria criteria) 方法创建 Criteria 对象, 方法里的 criteria 对象会被添加进 Criteria 对象的列表中.

重要 我们推荐您只使用 or() 方法创建 Criteria 对象. 我们相信这种方法使代码更有可读性

如何生成Example类?

mybatis的的配置文件可以使用mybatis-generator工具生成,它就可以帮我们生成example类。

根据 Mybatis 代码生成工具文档,需要一个配置文件,这里命名为:mbgConfiguration.xml放在 src 目录下. 配置文件内容如下:

/p>

PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"

"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">

当我们需要生成example类的时候,需要table里面去掉

enableCountByExample="false" enableUpdateByExample="false"

enableDeleteByExample="false" enableSelectByExample="false"

selectByExampleQueryId="false"

example如何使用?

简单查询

这个例子展示了如何用生成后的Example类去生成一个简单的where子句:

TestTableExample example = new TestTableExample();

example.createCriteria().andField1EqualTo(5);

作为另一种选择, 下面的方式也是可以的:

TestTableExample example = new TestTableExample();

example.or().andField1EqualTo(5);

在上面的例子中, 动态生成的where子句是:

where field1 = 5

下面的例子展示了如何用生成后的Example类去生成一个复杂的where子句 (用到了 JSE 5.0 的泛型):

TestTableExample example = new TestTableExample();

example.or()

.andField1EqualTo(5)

.andField2IsNull();

example.or()

.andField3NotEqualTo(9)

.andField4IsNotNull();

List field5Values = new ArrayList();

field5Values.add(8);

field5Values.add(11);

field5Values.add(14);

field5Values.add(22);

example.or()

.andField5In(field5Values);

example.or()

.andField6Between(3, 7);

在上面的例子中, 动态生成的where子句是:

where (field1 = 5 and field2 is null)

or (field3 <> 9 and field4 is not null)

or (field5 in (8, 11, 14, 22))

or (field6 between 3 and 7)

将会返回满足这些条件的记录结果.

去重复查询

您可以在所有的Example类中调用 setDistinct(true) 方法进行强制去重复查询.

Criteria类

Criteria 内部类的每个属性都包含 andXXX 方法,以及如下的标准的SQL查询方法:

IS NULL - 指相关的列必须为NULL

IS NOT NULL - 指相关的列必须不为NULL

= (equal) - 指相关的列必须等于方法参数中的值

<> (not equal) - 指相关的列必须不等于方法参数中的值

(greater than) - 指相关的列必须大于方法参数中的值

= (greater than or equal) - 指相关的列必须大于等于方法参数中的值

< (less than) - 指相关的列必须小于于方法参数中的值

<= (less than or equal) - 指相关的列必须小于等于方法参数中的值

LIKE - 指相关的列必须 “like” 方法参数中的值. 这个方法不用必须加入 ‘%’, 您必须设置方法参数中的值.

NOT LIKE - 指相关的列必须 “not like” 方法参数中的值. 这个方法不用必须加入 ‘%’, 您必须设置方法参数中的值.

BETWEEN - 指相关的列必须在 “between” 方法参数中的两个值之间.

NOT BETWEEN - 指相关的列必须不在 “not between” 方法参数中的两个值之间.

IN - 指相关的列必须在传入的方法参数的list中.

NOT IN - 指相关的列必须不在传入的方法参数的list中.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值