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

  • 相关阅读:
    k8s 操作
    最大独立集!
    也许是二分
    P6624 [省选联考 2020 A 卷] 作业题
    USACO20 JAN&FEB P
    线性基
    SAM
    2 道用到同个贪心 trick 的题目
    C语言结构体字节对齐与Windows手动设置对齐#pragma pack
    【学习笔记】从Thread.start追踪Hotspot源码
  • 原文地址:https://www.cnblogs.com/luckyplj/p/12165602.html
Copyright © 2020-2023  润新知