1.实体查询类:TestQueryBO
import java.io.Serializable;
public class TestQueryBO implements Serializable {
/**
* 主键
*/
private Integer id;
/**
* 通用查询字符串
*/
private String commonQuery;
/**
* 真实姓名
*/
private String testName;
/**
* 手机号
*/
private String testAccount;
/**
* 联系方式
*/
private String testTel;
/**
* 服务编号
*/
private String testSn;
/**
* t_test
*/
private static final long serialVersionUID = 1L;
/**
* 主键
* @return id 主键
*/
public Integer getId() {
return id;
}
/**
* 主键
* @param id 主键
*/
public void setId(Integer id) {
this.id = id;
}
public String getCommonQuery() {
return commonQuery;
}
public void setCommonQuery(String commonQuery) {
this.commonQuery = commonQuery;
}
/**
* 真实姓名
* @return test_name 真实姓名
*/
public String getTestName() {
return testName;
}
/**
* 真实姓名
* @param testName 真实姓名
*/
public void setTestName(String testName) {
this.testName = testName == null ? null : testName.trim();
}
/**
* 手机号
* @return test_account 手机号
*/
public String getTestAccount() {
return testAccount;
}
/**
* 手机号
* @param testAccount 手机号
*/
public void setTestAccount(String testAccount) {
this.testAccount = testAccount == null ? null : testAccount.trim();
}
/**
* 联系方式
* @return test_tel 联系方式
*/
public String getTestTel() {
return testTel;
}
/**
* 联系方式
* @param testTel 联系方式
*/
public void setTestTel(String testTel) {
this.testTel = testTel == null ? null : testTel.trim();
}
public String getTestSn() {
return testSn;
}
public void setTestSn(String testSn) {
this.testSn = testSn;
}
}
2.AND 字符链接的查询:
private TestQuery createQuery(TestQueryBO queryBO) {
TestQuery query = new TestQuery()
Criteria criteria = query.createCriteria()
if(null != queryBO.getId()) {
criteria.andIdEqualTo(queryBO.getId())
}
if(!StringUtils.isEmpty(queryBO.getTestSn())) {
criteria.andTestSnLike("%" + queryBO.getTestSn() + "%")
}
if(!StringUtils.isEmpty(queryBO.getTestName())) {
criteria.andTestNameLike("%" + queryBO.getTestName() + "%")
}
if(!StringUtils.isEmpty(queryBO.getTestAccount())) {
criteria.andTestAccountLike("%" + queryBO.getTestAccount() + "%")
}
if(!StringUtils.isEmpty(queryBO.getTestTel())) {
criteria.andTestTelLike("%" + queryBO.getTestTel() + "%")
}
return query
}
3.OR 字符链接的查询
private TestQuery createQuery(TestQueryBO queryBO) {
TestQuery query = new TestQuery()
// 如果通用查询字符串不为空就设置这个查询
if(null != queryBO.getCommonQuery()) {
query.or().andTestSnLike("%" + queryBO.getCommonQuery() + "%")
query.or().andTestNameLike("%" + queryBO.getCommonQuery() + "%")
query.or().andTestAccountLike("%" + queryBO.getCommonQuery() + "%")
query.or().andTestTelLike("%" + queryBO.getCommonQuery() + "%")
}
return query
}
4.两者的区别:
- AND 链接方式的查询使用的是 Query 对象里面的 Criteria 对象添加查询条件。
- OR 链接方式使用的是 Query 对象的 or() 方法添加查询条件。