美文网首页
SpringBoot——通用Mapper

SpringBoot——通用Mapper

作者: 定格r | 来源:发表于2020-02-18 21:47 被阅读0次

1.引入依赖:

    <dependency>
        <groupId>tk.mybatis</groupId>
        <artifactId>mapper-spring-boot-starter</artifactId>
        <version>2.0.3</version>
    </dependency>

2.接口继承通用Mapper:

public interface BrandMapper extends Mapper<Brand> {
}

3.启动文件中加入扫描的注释

@MapperScan("com.cn.demo1.mapper")  //括号内的为 mapper包所在位置
image.png

操作完以上步骤就可以使用了。

1、service层可以如下直接写,(切记,别忘了注释@Service)

@Service
public class demoService {
    @Autowired
    private VideoMapper videoMapper;

    public  List<Video> findAll(){
        return videoMapper.selectAll();
    }

    public Video findById(int id){
          return videoMapper.selectByPrimaryKey(id);
    }

    public  int update(Video video){
        return  videoMapper.updateByPrimaryKey(video);
    }

     public int delete(int id){
        return  videoMapper.deleteByPrimaryKey(id);
     }

     public int save(Video video){
        return videoMapper.insert(video);
     }

2、控制层

@RestController
@RequestMapping("/admin/api/v1/video")
public class videoAdminController {


  @Autowired
  private demoService demoService;
  /**
   * 根据id删除视频
   * @param videoId
   * @return
   */
  @DeleteMapping("del_by_id")
  public  Object delById(@RequestParam(value = "video_id",required = true) int videoId){
      return demoService.delete(videoId);
  }

  /**
   * 根据id更新视频
   * @param video
   * @return
   */
  @PutMapping("update_by_id")
  public  Object update(@RequestBody Video video){
      return demoService.update(video);
  }

  /**
   * 保存视频
   * @param video
   * @return
   */
  @PostMapping("save")
  public  Object save(@RequestBody Video video){
      return demoService.save(video);
  }
}

这样便就成功了。

通用Mapper的查询

1、id 的专用查询方法
     public void testSelectId() {
         userMapper.selectByPrimaryKey(1L);//id专用查询方法
        System.out.println( userMapper.selectByPrimaryKey(1L));
     }
2、属性查询
 public void testSelectName() {
        User user = new User();
         user.setName("张三");//哪个属性有值where条件就根据哪个属性生成,id除外
         List<User> select = userMapper.select(user);
         System.out.println(select);
     }
3、属性值唯一查询
 public void testSelectOne() {
         User user = new User();
         user.setUserName("zhangsan");//查询值有多个会报错
         System.out.println(userMapper.selectOne(user));
    }
4、统计个数
public void testSelectCount() {
         System.out.println(userMapper.selectCount(null));//没有查询条件就全查
     }
5、插入
  public void testInsert() {
           User user = new User();
          user.setUserName("孙悟空");
          user.setName("sunwukong");
          user.setAge(500);
          user.setId(50L);
          user.setPassword("234");
         int insert = userMapper.insert(user);
         System.out.println(insert);
     }
6、selective插入

insertSelective方法:有值才操作,没有值不理会,比上insert方法效率高

7、删除
 public void testDelete() {
        User user = new User();
         user.setUserName("孙悟空");
         int delete = userMapper.delete(user);
         System.out.println(delete);
     }
8、根据id删除,主键的特有方法
public void testDeleteByPrimaryKey() { 
userMapper.deleteByPrimaryKey(51L); 
} 
8、修改
 /*
      * 指定的属性改变为指定的值,其余的为null
      * */
      @Test
      public void testUpdateByPrimaryKey() {
          User user = new User();
          user.setId(36L);
          user.setUserName("李白");
          user.setName("libai");
         userMapper.updateByPrimaryKey(user);
     }
9、selecttive修改
 /*
    * 只改变指定的属性,其余属性不变
    * */
    @Test
    public void testUpdatePriimarySelective() {
        User user = new User();
        user.setId(33L);
        user.setUserName("王昭君");
        user.setName("wangzhaojun");
        user.setUpdated(new Date());
        userMapper.updateByPrimaryKeySelective(user);
    }

通用Mapper组合查询和排序

1.添加普通条件
/*
    * example要表达的含义为???
    * 组合的查询条件
    * */
    @Test
    public void testSelectByExample(){
        //条件的组合工具
        Example example = new Example(User.class);
        //条件,一个criteria中可以组合无数个条件,但是这些条件都是and关系
        Example.Criteria criteria = example.createCriteria();
        criteria.andEqualTo("sex","1");
        criteria.andBetween("age",20,30);
        List<User> users = userMapper.selectByExample(example);
        System.out.println("users = " + users);

    }

2.添加or条件的组合查询
@Test
    public void testSelectByExampleOr(){
        //条件的组合工具
        Example example = new Example(User.class);
        //条件,一个criteria中可以组合无数个条件,但是这些条件都是and关系
        Example.Criteria criteria = example.createCriteria();
        criteria.andEqualTo("sex","1");
        Example.Criteria criteria1 = example.createCriteria();
        criteria1.andLike("name","%李%");
        //直接使用example的or方法使得第二个条件和原来的条件组合or关系
        example.or(criteria1);
        System.out.println(userMapper.selectByExample(example));

    }
3.排序
@Test
    public void testSelectByExampleOrder(){
        //条件的组合工具
        Example example = new Example(User.class);
        //条件,一个criteria中可以组合无数个条件,但是这些条件都是and关系
        Example.Criteria criteria = example.createCriteria();
        criteria.andEqualTo("sex","1");
        Example.Criteria criteria1 = example.createCriteria();
        criteria1.andLike("name","%李%");
        //直接使用example的or方法使得第二个条件和原来的条件组合or关系
        example.or(criteria1);
        //排序
        example.setOrderByClause("id DESC");
        System.out.println(userMapper.selectByExample(example));

    }

相关文章

网友评论

      本文标题:SpringBoot——通用Mapper

      本文链接:https://www.haomeiwen.com/subject/mgbnfhtx.html