日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學(xué)無先后,達(dá)者為師

網(wǎng)站首頁(yè) 編程語言 正文

一個(gè)實(shí)體類有多個(gè)數(shù)據(jù),不寫xml,用mybatisplus進(jìn)行查詢

作者:ImisLi 更新時(shí)間: 2024-03-25 編程語言

比如:我的實(shí)體類有50個(gè)屬性,使用mybatisplus 的情況下我怎么實(shí)現(xiàn)按這50個(gè)屬性是否有值經(jīng)行查詢,并且這50個(gè)屬性是用駝峰命名法得來的,與數(shù)據(jù)庫(kù)的字段不一致

我們可以用QueryWrapper對(duì)象用于構(gòu)建查詢條件。使用反射機(jī)制遍歷實(shí)體類的所有屬性,并將屬性名和屬性值作為查詢條件添加到QueryWrapper對(duì)象中。同時(shí),可以使用StringUtils.camelToUnderline()方法將駝峰式命名的屬性名轉(zhuǎn)換為下劃線命名的列名。

代碼如下:

@Service
public class ZsFabuServiceImpl extends ServiceImpl<ZsFabuMapper, ZsFabu> implements IZsFabuService {

    @Override
    public List<ZsFabu> selectZsFabuList(ZsFabu zsFabu) {
        QueryWrapper<ZsFabu> wrapper = new QueryWrapper<>();

        for (Field field : zsFabu.getClass().getDeclaredFields()) {
            field.setAccessible(true);// 設(shè)置可訪問性,以便獲取私有屬性  
            Object value = field.get(zsFabu);
           
            String camel = StringUtils.camelToUnderline(field.getName());
         
            wrapper.eq(value != null,camel,value);
        }
    
        return this.list(wrapper);
    }
}

原文鏈接:https://blog.csdn.net/ImisLi/article/details/134079670

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新