1.查詢
(1)selectByPrimaryKey() 根據主鍵id進行查詢
應用實例:
/** * @RunWith 和 @SpringBootTest 這兩個注解(在使用數據庫查詢數據庫時,必須開啟) */ @RunWith(SpringRunner.class) @SpringBootTest(classes = AozhanUserApplication.class) public class MysqlMapperTest { @Autowired private ChemicalMapper chemicalMapper; @Test public void testSelectByPrimaryKey(){ //相當於select * from tb_chemical where id = 137 Chemical chemical=this.chemicalMapper.selectByPrimaryKey(137); System.out.println(chemical); //chemical這個實體類已經重寫tostring方法 } }
程序執行效果:
數據庫:
(2)模糊查詢
selectByExample 根據條件進行模糊查詢
應用實例:查詢數據庫中爐號包含FN171225AT12的記錄。
@Test public void testMohuQuery() { Example example=new Example(Chemical.class); Example.Criteria criteria = example.createCriteria(); criteria.andLike("heatno","%"+"FN171225AT12"+"%"); List<Chemical> chemicalList = this.chemicalMapper.selectByExample(example); Chemical chemicalReturn=null; if(chemicalList.size()>0){ chemicalReturn=chemicalList.get(chemicalList.size()-1); } System.out.println(chemicalReturn); }
程序執行效果:
數據庫:
(3)條件查詢
andEqualTo() 方法
應用實例:查詢數據庫中,company字段值為浙江天台,heatno字段值為cjlu20200108的化學成分記錄。
@Test public void testConditionQuery() { Example example=new Example(Chemical.class); Example.Criteria criteria = example.createCriteria(); criteria.andEqualTo("company","中國天台"); criteria.andEqualTo("heatno","cjlu20200108"); List<Chemical> chemicalList = this.chemicalMapper.selectByExample(example); Chemical chemicalReturn=null; if(chemicalList.size()>0){ chemicalReturn=chemicalList.get(chemicalList.size()-1); } System.out.println(chemicalReturn); }
程序執行結果:
方法 | 說明 |
---|---|
example.setOrderByClause(“字段名 ASC”); | 添加升序排列條件,DESC為降序 |
example.setDistinct(false) | 去除重復,boolean型,true為選擇不重復的記錄。 |
criteria.andXxxIsNull | 添加字段xxx為null的條件 |
criteria.andXxxIsNotNull | 添加字段xxx不為null的條件 |
criteria.andXxxEqualTo(value) | 添加xxx字段等於value條件 |
criteria.andXxxNotEqualTo(value) | 添加xxx字段不等於value條件 |
criteria.andXxxGreaterThan(value) | 添加xxx字段大於value條件 |
criteria.andXxxGreaterThanOrEqualTo(value) | 添加xxx字段大於等於value條件 |
criteria.andXxxLessThan(value) | 添加xxx字段小於value條件 |
criteria.andXxxLessThanOrEqualTo(value) | 添加xxx字段小於等於value條件 |
criteria.andXxxIn(List<?>) | 添加xxx字段值在List<?>條件 |
criteria.andXxxNotIn(List<?>) | 添加xxx字段值不在List<?>條件 |
criteria.andXxxLike(“%”+value+”%”) | 添加xxx字段值為value的模糊查詢條件 |
criteria.andXxxNotLike(“%”+value+”%”) | 添加xxx字段值不為value的模糊查詢條件 |
criteria.andXxxBetween(value1,value2) | 添加xxx字段值在value1和value2之間條件 |
criteria.andXxxNotBetween(value1,value2) | 添加xxx字段值不在value1和value2之間條件 |
(3)獲取符合模糊查詢條件的查詢結果數量
selectCountByExample
@Test public void testMohuQueryCount() { Example example=new Example(Chemical.class); Example.Criteria criteria = example.createCriteria(); criteria.andLike("heatno","%"+"FN171225AT12"+"%"); int count = this.chemicalMapper.selectCountByExample(example); System.out.println(count); }
程序執行效果:
2.插入數據(增)
insert()
@Test public void testInsertChemical(){ Chemical chemical=new Chemical(); chemical.setHeatno("aozhan20191116"); chemical.setCompany("cjlu"); chemical.setCompany("20200108"); this.chemicalMapper.insert(chemical); }
數據庫:
3.刪除數據
deleteByPrimaryKey() 根據主鍵刪除數據
應用實例:根據主鍵刪除id為2的化學成分記錄
@Test public void testDeleteChemical(){ this.chemicalMapper.deleteByPrimaryKey(2); }
數據庫:
刪除前:
刪除后:
4.修改數據
updateByPrimaryKey() 根據主鍵修改數據
應用實例:修改主鍵id為269的化學成分記錄的爐號和鋼廠名
@Test public void testUpdateChemical(){ Chemical chemical=new Chemical(); chemical.setId(Long.parseLong("269")); chemical.setHeatno("aozhan20200108"); chemical.setCompany("梅鋼"); this.chemicalMapper.updateByPrimaryKey(chemical); }
數據庫修改前:
數據庫修改后:
參考文獻:
通用mapper 根據條件修改、查詢 Example的實例函數及例子: https://blog.csdn.net/u013521531/article/details/78811077
通用Mapper的example實例使用: https://blog.csdn.net/qq_35174296/article/details/81389017