通用Mapper接口

  • Mapper接口继承自BaseMapper接口,由BaseMapper接口提供了很多单表的增删改查相关的操作方法。在这一章节,介绍一些Mapper接口中的方法。

简单插入数据-insert

  • 插入一条数据
@Test
void insert(){
    User user = new User();
    user.setId(6L);
    user.setName("Mike");
    user.setAge(33);
    user.setEmail("test6@powernode.com");
    userMapper.insert(user);
}

简单删除数据-deleteById

  • 根据id删除数据
@Test
void deleteOne(){
    userMapper.deleteById(6L);
}

简单修改数据-updateById

  • 测试修改全部数据
@Test
void updateById(){
    User user = new User();
    user.setId(6L);
    user.setName("迈克");
    user.setAge(35);
    user.setEmail("maike6@powernode.com");
    userMapper.updateById(user);
}
  • 测试修改部分数据
@Test
void updateById(){
    User user = new User();
    user.setId(6L);
    user.setName("Mike");
    user.setAge(35);
    user.setEmail("test6@powernode.com");
    userMapper.updateById(user);
}

简单查询数据-selectById

  1. 根据Id查询
@Test
    void selectById(){
        User user1 = userMapper.selectById(6L);
        System.out.println(user1);
    }
  1. 查询所有
@Test
void selectList() {
    List<User> userList = userMapper.selectList(null);
    System.out.println(userList);
}

通用service接口

  • MybatisPlus还提供了IService接口和对应的实现类ServiceImpl,该实现类已经提供好了一些对应的Service相关的方法,在某些场景下,我们可以直接使用ServiceImpl提供的方法,实现对应的功能。

  • IService接口中包含了service相关的一些增删改查方法
    mybatisPlus基础篇-LMLPHP

  • ServiceImpl实现类提供了service相关的增删改查方法的实现
    mybatisPlus基础篇-LMLPHP

  • UserService接口继承自IService接口

  • UserServiceImpl类继承ServiceImpl<UserMapper,User>

  • 关系如下:
    mybatisPlus基础篇-LMLPHP

  • 注入UserService对象,测试相关方法

@Autowired
private UserService userService;

Service接口-插入数据

@Test
void insertService(){
    User user = new User();
    user.setId(7L);
    user.setName("zhangsan");
    user.setAge(35);
    user.setEmail("zhangsan@powernode.com");

    userService.save(user);
}

Service接口-删除数据

@Test
void deleteService(){
    userService.removeById(7L);
}

Service接口-修改数据

@Test
void updateService(){
    User user = new User();
    user.setId(6L);
    user.setAge(40);
    userService.updateById(user);
}

Service接口-查询数据

@Test
void selectService(){
    List<User> userList = userService.selectList();
    System.out.println(userList);
}

自定义接口方法

  • 通过继承MybatisPlus提供的Service接口,既可以拓展自己的service方法,也可以使用现有的一些service方法
  • MybatisPlus除了给我们提供了这些丰富的接口方法以外,对于我们自己的需求,也可以编写自定义的接口方法,我们通过自己编写SQL语句的形式,实现想要的SQL需求

自定义Mapper接口方法

  • Mapper接口中提供抽象方法
@Mapper
public interface UserMapper extends BaseMapper<User> {
       User selectByName(String name);
}
  • 提供映射配置文件,提供对应的SQL语句
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.powernode.mapper.UserMapper">

     <select id="selectByName" resultType="com.powernode.domain.User">
        select * from user where name = #{value}
     </select>
</mapper>
  • 测试自定义的Mapper接口方法
@Test
void myMethod(){
    User user = userMapper.selectByName("Jone");
    System.out.println(user);
}
  • 自定义接口的语法规范和之前编写Mybatis的语法规范一样,所以可以看出,MybatisPlus是无侵入式的(引入MybatisPlus并不会对于原先的语法造成任何改变。)
07-27 02:34