在日常的開發中,有時會使用mybatis的逆向工程,來快速的建立類,其中在建立實例的過程當中有一個以Example結尾的類,這個類是專門用來對這個單表來查詢的類,就至關於,對該單表的增刪改查是脫離sql性質的,直接在service層就能夠完成(固然這個sql是逆向已經生過的)java
例如:sql
select id, username, birthday, sex, address from user WHERE ( username = ‘張三’ ) order by username ascmybatis
@Test public void testFindUserByName(){ //經過criteria構造查詢條件 UserExample userExample = new UserExample(); userExample.setOrderByClause("username asc"); //asc升序,desc降序排列 userExample.setDistinct(false); //去除重複,true是選擇不重複記錄,false反之 UserExample.Criteria criteria = userExample.createCriteria(); //構造自定義查詢條件 criteria.andUsernameEqualTo("張三"); //自定義查詢條件可能返回多條記錄,使用List接收 List<User> users = userMapper.selectByExample(userExample); System.out.println(users); }
說明:app
Mybatis逆向工程會生成實例及實例對應的example(用於添加條件,至關於where後的部分) xxxExample example = new xxxExample(); Criteria criteria = example.createCriteria(); 方法說明: // 1.添加升序排列條件,DESC爲降序 example.setOrderByClause("字段名ASC") // 2.去除重複,boolean類型,true爲選擇不重複的記錄 example.setDistinct(false) // 3.添加字段xxx爲null的條件 criteria.andXxxIsNull // 4.添加字段xxx不爲null的條件 criteria.andXxxIsNotNull // 5.添加xxx字段等於value條件 criteria.andXxxEqualTo(value) // 6.添加xxx字段不等於value條件 criteria.andXxxNotEqualTo(value) // 7.添加xxx字段大於value條件 criteria.andXxxGreaterThan(value) // 8.添加xxx字段大於等於value條件 criteria.andXxxGreaterThanOrEqualTo(value) // 9.添加xxx字段小於value條件 criteria.andXxxLessThan(value) // 10.添加xxx字段小於等於value條件 criteria.andXxxLessThanOrEqualTo(value) // 11.添加xxx字段值在List criteria.andXxxIn(List) // 12.不添加xxx字段值在List criteria.andXxxNotIn(List) // 13.添加xxx字段值在之間 criteria.andXxxBetween(value1,value2) // 14.添加xxx字段值不在之間 criteria.andXxxNotBetween(value1,value2)