1. 程式人生 > >mybatis query 物件 or 查詢

mybatis query 物件 or 查詢

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.兩者的區別:

  1. AND 連結方式的查詢使用的是 Query 物件裡面的 Criteria 物件新增查詢條件。
  2. OR 連結方式使用的是 Query 物件的 or() 方法新增查詢條件。