找回密码
 立即注册
首页 业界区 安全 MyBatis-plus之快速入门

MyBatis-plus之快速入门

巫雪艷 10 小时前
MyBatis-plus简述

MyBatis-plus是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。
内置代码生成器、内置分页插件、内置性能分析插件、内置全局拦截插件等。。。
快速应用


  • 新建一个空的SpringBoot项目
  • 引入依赖,MyBatis-plus依赖已经包含了MyBatis框架,所以不再引入MyBatis依赖:
    这个依赖适配springboot3.x 版本
    1. <dependency>
    2.     <groupId>mysql</groupId>
    3.     mysql-connector-java</artifactId>
    4.     <version>8.0.30</version>
    5. </dependency>
    6. <dependency>
    7.     <groupId>com.alibaba</groupId>
    8.     druid</artifactId>
    9.     <version>1.1.20</version>
    10. </dependency>
    11. <dependency>
    12.     <groupId>com.baomidou</groupId>
    13.     mybatis-plus-spring-boot3-starter</artifactId>
    14.     <version>3.5.15</version>
    15. </dependency>
    16. <dependency>
    17.     <groupId>org.projectlombok</groupId>
    18.     lombok</artifactId>
    19.     <version>1.18.42</version>
    20. </dependency>
    21. <dependency>
    22.     <groupId>org.springframework.boot</groupId>
    23.     spring-boot-starter-web</artifactId>
    24. </dependency>
    复制代码

    • 编写springboot配置文件
    1. spring:
    2.   datasource:
    3.     username: root
    4.     password: root
    5.     url: jdbc:mysql://localhost:3306/spring6?useSSL=false&serverTimezone=UTC&characterEncoding=utf8&useUnicode=true
    6.     driver-class-name: com.mysql.cj.jdbc.Driver
    复制代码
  • 编写Mapper接口
    1. // 继承BaseMapper,BaseMapper内置了丰富的接口方法,这里就不用编写常用的方法了
    2. // 而且这里方法对应的映射文件也不用写了
    3. @Mapper
    4. public interface UserMapper extends BaseMapper<User> {
    5. }
    复制代码

    • 编写controller、service、impl、domain 代码:
      1. @RestController
      2. public class UserController {
      3.     @Autowired
      4.     private UserService userService;
      5.     @RequestMapping("/selectAll")
      6.     public List<User> getUsers() {
      7.         return userService.selectList();
      8.     }
      9. }
      复制代码
      1. @Data
      2. @NoArgsConstructor
      3. @AllArgsConstructor
      4. public class User {
      5.     private Long id;
      6.     private String name;
      7.     private Integer age;
      8.     private String email;
      9. }
      复制代码
      1. public interface UserService {
      2.     List<User> selectList();
      3. }
      复制代码
      1. @Service("userService")
      2. public class UserServiceImpl implements UserService {
      3.     @Autowired
      4.    private UserMapper userMapper;
      5.     @Override
      6.     public List<User> selectList() {
      7.         return userMapper.selectList(null);
      8.     }
      9. }
      复制代码

此时打开对应的url([localhost:8080/selectAll](http://localhost:8080/selectAll)即可进行测试。
开启日志

在application.yml文件中配置如下:
  1. mybatis-plus:
  2.   global-config:
  3. #    去掉mybatis-plus在控制台输出的图标
  4.     banner: false
  5.   configuration:
  6.     # 开启日志
  7.     log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
复制代码
通用Mapper接口介绍

基础的增删改查
  1. @Autowired
  2. private UserMapper userMapper;
  3. @Test
  4. void contextLoads() {
  5.     User user = new User();
  6.     user.setAge(13);
  7.     user.setId(1L);
  8.     user.setName("test");
  9.     // 简单新增方法
  10.     userMapper.insert(user);
  11.     // 简单根据id删除
  12.     userMapper.deleteById(2L);
  13.     user.setAge(22);
  14.     // 简单更新
  15.     userMapper.updateById(user);
  16.     // 简单查询
  17.     User user1 = userMapper.selectById(2L);
  18. }
复制代码
通用Service接口介绍

MyBatis-plus提供了IService接口和对应的实现类ServiceImpl。该实现类已经实现了一些对应的service方法,我们可以直接使用它提供的额方法来实现功能,不用亲自编写实现方法。
具体实现关系如下:
1.png

修改后的UserService接口如下:
  1. public interface UserService extends IService<User> {
  2.     List<User> selectList();
  3. }
复制代码
修改后的UserServiceImpl方法如下:
  1. @Service("userService")
  2. public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements UserService {
  3.     @Autowired
  4.    private UserMapper userMapper;
  5.     @Override
  6.     public List<User> selectList() {
  7.         return userMapper.selectList(null);
  8.     }
  9. }
复制代码
此时就可以用Service来插入数据等操作:
  1. void testServiceCRUD(){
  2.     User user = new User();
  3.     user.setAge(13);
  4.     user.setId(1L);
  5.     user.setName("test");
  6.     // 新增
  7.     userService.save(user);
  8.     // 删除
  9.     userService.removeById(2L);
  10.     // 更新
  11.     user.setId(1L);
  12.     user.setName("test2");
  13.     userService.updateById(user);
  14.     // 查询
  15.     List<User> users = userService.selectList();
  16. }
复制代码
自定义Mapper接口方法

自定义的接口方法和实现与mybatis的实现方式一样。
Mapper接口:
  1. @Mapper
  2. public interface UserMapper extends BaseMapper<User> {
  3.     User selectByName(String name);
  4. }
复制代码
UserMapper.xml文件:
  1. <mapper namespace="com.ali.mapper.UserMapper">
  2.     <select id="selectByName" resultType="com.ali.domain.User">
  3.         SELECT * FROM user where name = #{name}
  4.     </select>
  5. </mapper>
复制代码
注意:这里的mapper接口和UserMapper.xml文件必须处于同一个目录下。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册