奥展项目笔记08--通用Mapper使用笔记--涉及数据库表的增、删、改、查和模糊查询
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