奥展项目笔记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

原文地址:https://www.cnblogs.com/luckyplj/p/12165602.html