奧展項目筆記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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM