mybatis query 物件 or 查詢
阿新 • • 發佈:2019-02-12
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() 方法新增查詢條件。