MyBatis通用Mapper中的通用example(排序)詳解
MyBatis通用Mapper的通用example(排序)
Example example = new Example(TerminalType.class); //註意:排序使用的是列名 example.setOrderByClause("TT_PROVIDERID DESC"); //如果需要其他條件 //掌機類型名字 //條件查詢使用的是屬性名 example.createCriteria().andEqualTo("terminalName", "計量現場服務終端"); //廠商id大於3 // example.createCriteria().andGreaterThan("id",3); List<TerminalType> terminalTypeList = terminalTypeService.selectByExample(example);
接口
/** * 按照指定排序查詢集合 * * @param example - 條件 * @return count */ List<T> selectByExample(Object example);
實現類
@Override public List<T> selectByExample(Object example) { return baseMapper.selectByExample(example); }
MyBatis通用Mapper技巧
一、排序
錯誤代碼:
example.orderBy(BaseEntity.Field.GMTUpdate + " desc");
正確方式:
1、通過註解 @OrderBy(value = “DESC”)
2、example.setOrderByClause(“GMT_UPDATE DESC”);註意此處是列名稱,不是屬性名。
二、處理oracle的null異常
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <settings> <setting name="cacheEnabled" value="false"/> <!--解決插入null的時候報錯問題--> <setting name="jdbcTypeForNull" value="NULL"/> </settings> </configuration>
三、mapper的selectOne返回值可能是null
獲取的結果應做null判定。
四、看代碼
public interface SequenceMapper { @Select("select SEQ_${tableName}.nextval from dual") int getSequence(@Param("tableName") String tableName); }
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- mybatis example如何自動生成代碼 排序語句
- Mybatis Example的高級用法詳解
- Tk.mybatis零sql語句實現動態sql查詢的方法(4種)
- TKMybatis的介紹和使用詳解
- MyBatis全局配置文件詳解