mybatis-plus Mapper CRUD 接口和Service CRUD 接口使用(二)

參考文檔:https://www.bookstack.cn/read/mybatis-plus-3.x/quickstart.md 

如果使用mybatis-plus Mapper CRUD 接口,則需要在dao層加上BaseMapper<T>

public interface GoodDao extends BaseMapper<Good> {
}

 如果使用Service CRUD 接口,則需要在service層加上IService<T>

public interface IGoodService extends IService<Good> {
}

Service實現類中展示的爲mybatis-plus Mapper CRUD 的用法

package mptest.mybatistest.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import mptest.mybatistest.mapper.GoodDao;
import mptest.mybatistest.entity.Good;
import mptest.mybatistest.service.IGoodService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


@Service
public class GoodServiceImpl extends ServiceImpl<GoodDao,Good> implements IGoodService {
    @Autowired
    private GoodDao goodDao;
    //insert into tb (name) values('nameValue');
    public int insert(String name){
        Good po=new Good();
        po.setName(name);
        return  goodDao.insert(po);
    }
    //delete from tb where id=idValue;
    public int deleteByID(int id){
      return goodDao.deleteById(id);
    }
    //delete from tb where sex=1 and name='李四';
    public int deleteByMap(){
        Map<String, Object> columnMap=new HashMap<>();
        columnMap.put("sex",1);
        columnMap.put("name","李四");
        return goodDao.deleteByMap(columnMap);
    }
    //delete from tb where name="李六";
    public int delete(){
        return goodDao.delete(new QueryWrapper<Good>().eq("name","李六"));
    }
    //delete from tb where id in(1,3);
    public int deleteBatchIds(){
        List list = new ArrayList();
        list.add(1);
        list.add(3);
        return  goodDao.deleteBatchIds(list);
    }
    //update tb set sex=0 where id=6;
    public int updateById(){
        Good good=new Good();
        good.setId(6);
        good.setSex(0);
        return  goodDao.updateById(good);
    }
    //update tb set sex=1 where name='七七';
    public int update1(){
        Good good=new Good();
        good.setSex(1);
        return goodDao.update(good,new QueryWrapper<Good>().eq("name","七七"));
    }
    //同delete
    public Good selectById(){
       return goodDao.selectById(6);
    }
    //同delete
    public List selectBatchIds(){
        List list = new ArrayList();
        list.add(1);
        list.add(3);
        return goodDao.selectBatchIds(list);
    }
    //同delete
    public List selectByMap(){
        Map<String, Object> columnMap=new HashMap<>();
        columnMap.put("sex",1);
        columnMap.put("name","李四");
        return goodDao.selectByMap(columnMap);
    }
    //如果邏輯非唯一該方法不會自動替您 limit 1 你需要 wrapper.last("limit 1") 設置唯一性。
    public Good selectOne(){
        return goodDao.selectOne(new QueryWrapper<Good>().eq("name","七七").last("limit 1"));
    }
    //記錄數
    public int selectCount(){
        return goodDao.selectCount(new QueryWrapper<Good>().eq("sex","1"));
    }
    //查全部
    public List selectList(){
        return goodDao.selectList(new QueryWrapper<Good>());
    }
    //同上但可自定義增加參數
    public List selectMaps(){
        List<Map<String,Object>> list=goodDao.selectMaps(new QueryWrapper<Good>());
        for(Map m:list){
       m.put("zidingyi","aaa");
        }
        return list;
    }
    //只返回第一個字段的值
    public List selectObjs(){
        return goodDao.selectObjs(new QueryWrapper<Good>());
    }
    //分頁 select * from tb limit 0,2
    public void selectPage(){
        Page<Good> page = new Page<>(1,2);
       IPage iPage= goodDao.selectPage(page,new QueryWrapper<Good>());
    }
    public void selectMapsPage(){
        Page<Good> page = new Page<>(1,2);
        IPage iPage= goodDao.selectMapsPage(page,new QueryWrapper<Good>());
    }
}

controller層中展示的是Service CRUD 的用法

​
package mptest.mybatistest.controller;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import mptest.mybatistest.entity.Good;
import mptest.mybatistest.service.IGoodService;
import net.sf.json.JSON;
import net.sf.json.JSONObject;
import net.sf.json.JSONString;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

@RestController
@RequestMapping("/work")
public class GoodsController {

    @Autowired
    private IGoodService goodService;
    @RequestMapping("/save")
    //update 根據 updateWrapper 條件,更新記錄
    //updateBatchById 根據ID 批量更新
    //insert into tb (name,sex) values('李玉',1);
    public boolean save(){
        Good good=new Good();
        good.setSex(1);
        good.setName("李玉");
        return goodService.save(good);
    }
    @RequestMapping("/saveBatch")
    public boolean saveBatch(){
        Good good1=new Good();
        good1.setName("李玉1");
        good1.setSex(1);
        Good good2=new Good();
        good2.setName("李玉2");
        good2.setSex(1);
        List list =new ArrayList();
        list.add(good1);
        list.add(good2);
        //insert into tb (name,sex) values('李玉',1); 執行多條
        goodService.saveBatch(list);
        //insert into tb (name,sex) values('李玉',1); 執行多條,每次執行5個
        goodService.saveBatch(list,5);
        return true;
    }
    @RequestMapping("/saveOrUpdateBatch")
    //saveOrUpdate 則修改,無則新增 一條
    //saveOrUpdateBatch有則修改,無則新增,多條 根據主鍵ID判斷
    public boolean saveOrUpdateBatch(){
        Good good1=new Good();
        good1.setName("李玉3");
        good1.setSex(0);
        good1.setId(5);
        Good good2=new Good();
        good2.setName("李玉2");
        good2.setSex(1);
        List list =new ArrayList();
        list.add(good1);
        list.add(good2);
        return goodService.saveOrUpdateBatch(list);
    }
    //removeById 根據主鍵刪
    //removeByMap 根據表字段map對象刪
    //removeByIds 根據主鍵批量刪除
    //remove 根據QueryWrapper刪除
    @RequestMapping("/remove")
    public boolean  remove(){
      return goodService.remove(new QueryWrapper<Good>().eq("name","李玉2"));
    }
    //getById 根據 ID 查詢
    //listByIds 根據ID 批量查詢
    //listByMap 根據表字段map對象
    //getOne 根據 Wrapper,查詢一條記錄
    //getMap 根據 Wrapper,查詢一條記錄
    //getObj 根據 Wrapper,查詢一條記錄(有問題?)
    //count 根據 Wrapper 條件,查詢總記錄數
    //list 查詢列表
    //listMaps 查詢列表 List<Map<String, Object>>
    //listObjs 根據 Wrapper 條件,查詢全部記錄
    @RequestMapping("/getObj")
    public Good getOne(){
        return goodService.getOne(new QueryWrapper<Good>().eq("name","李玉2").last("limit 1,1"));
    }
    //page 翻頁查詢
    //pageMaps 翻頁查詢
    @RequestMapping("/page")
    public String page(){
        Page<Good> page = new Page<>(1,3);
        IPage iPage= goodService.page(page,new QueryWrapper<Good>());
        return JSONObject.fromObject(iPage).toString();
    }
}

​

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章