MyBatis-Plus教程

MyBatis Plus 概述
 
  学习MyBatis-Plus 前需要掌握
        1.Mybatis
        2.Spring
        3.SpringMVC
 
  为什么要学习 MyBatis-Plus 答案当然是为了偷懒!他可以帮助我们节约大量时间,所有的CRUD都可以自动化完成!
简介
 
   MyBatis-Plus (简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

特性

1.无侵入:只做增强不做改变,引入他不会对现有工程产生任何影响,如丝般顺滑

2.耗损小:启动即会自动注入基本CURS,性能基本无损耗,直接面向对象操作

3.强大的CRUD操作:内置通用Mapper、通用Service,仅仅通过少量的配置即可实现单表大部分CRUD操作,更有强大的条件条件构造器,满足各类使用需求

4.支持Lambda形式调用:通过Lambda表达式,方面的编写各类查询条件,无需再担心字段写错

5.支持主键自动生成:支持多达4种主键策略(内含分布式唯一ID生成器-Sequence),可自由配置,完美解决逐渐问题

6.支持ActiveRecord模式:支持ActiveRecord形式调用,实体类只需继承Model类即可进行强大的CRUD操作

7.支持自定义全局通用操作:支持全局通用方法注入(Write once, use anywhere)

8.内置代码生成器:采用代码或者Maven插件可快速生成Mapper、Model、Service、Controller层代码,支持模板引擎,更有超多自定义配置等您来使用

9.内置分页插件:基于MyBatis物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通List查询

10.分页插件支持多种数据库 支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、
Postgre、SQLServer 等多种数据库
11.内置性能分析插件 :可输出 SQL 语句以及其执行时间,建议开发测试时启用该功能,能快速揪出慢查询
12.内置全局拦截插件 :提供全表 delete 、 update 操作智能分析阻断,也可自定义拦截规则,预防误操做
快速开始
地址: https://baomidou.com/pages/226c21/
步骤
1.创建数据库 mybatis_plus
2.创建表 user
DROP TABLE IF EXISTS user; 
CREATE TABLE user (
id BIGINT(20) NOT NULL COMMENT '主键ID', 
name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓 名', 
age INT(11) NULL DEFAULT NULL COMMENT '年龄', 
email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮 箱',

将数据插入表中

PRIMARY KEY (id) );INSERT INTO user (id, name, age, email) VALUES 
(1, 'Jone', 18, 'test1@baomidou.com'), 
(2, 'Jack', 20, 'test2@baomidou.com'),
 (3, 'Tom', 28, 'test3@baomidou.com'), 
(4, 'Sandy', 21, 'test4@baomidou.com'), 
(5, 'Billie', 24, 'test5@baomidou.com');

3.编写项目-创建springBoot工程

4.导入依赖
 说明:

我们使用 mybatis-plus 可以节省我们大量的代码,尽量不
要同时导入 mybatis 和 mybatisplus!会有版本的差异!
 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>RELEASE</version>
            <scope>compile</scope>
        </dependency>
5. 修改 application.properties文件为yaml文件,并配置数据源 application.yml
spring:
  datasource:
    driver-class-name: com.p6spy.engine.spy.P6SpyDriver
    url: jdbc:p6spy:mysql://localhost:3306/mybatis_pius?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
    username: root
    password: root
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
6. 基于Lombok创建pojo-User.java
@Data 
public class User {
 private Long id; 
private String name; 
private Integer age; 
private String email;
 }
7. 创建Mapper接口
package com.niit.mybatisplus.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.niit.mybatisplus.pojo.User;
import org.springframework.stereotype.Repository;

@Repository
public interface UserMapper extends BaseMapper<User> {
}
8. 启动类添加Mybatis需要扫描的接口的包
@MapperScan("com.niit.mybatisplus.mapper")
package com.niit.mybatisplus;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan("com.niit.mybatisplus.mapper")
public class MybatisplusApplication {

    public static void main(String[] args) {
        SpringApplication.run(MybatisplusApplication.class, args);
    }
}
9. 编写测试代码
@SpringBootTest
class MybatisplusApplicationTests {
    @Autowired
    private UserMapper userMapper;

    @Test
    void contextLoads() {
    }

    @Test
    public void testSelect() {
        System.out.println("---------------selectAll method test-------");
        List<User> userList = userMapper.selectList(null);
        userList.forEach(System.out::println);
    }

CRUD扩展

插入操作

insert插入

@Test
 public void testInsert(){
 User user=new User();
 user.setName("Alice"); 
user.setAge(18);
 user.setEmail("alice@163.com"); 
if(userMapper.insert(user)>0){
System.out.println("新增成功");
 }else{
System.out.println("新增失败");
 }
 }

更新操作

update 更新

@Test 
public void testUpdate(){ 
User user=new User(); 
user.setId(1571698711683952642L); 
user.setAge(28); 
if(userMapper.update(user,null)>0){ 
System.out.println("修改成功");
 }
else
{
System.out.println("修改失败"); 
} 
}

更详细内容请见官网快速开始 | MyBatis-Plus

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis-Plus是一个MyBatis的增强工具,它在MyBatis的基础上增加了很多实用的功能,使得开发更加高效、便捷。 以下是MyBatis-Plus的使用教程: 1. 引入MyBatis-Plus依赖 在项目的pom.xml文件中引入MyBatis-Plus的依赖: ``` <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.3.1</version> </dependency> ``` 2. 配置MyBatis-Plus 在application.properties文件中配置MyBatis-Plus的相关配置: ``` # 数据库配置 spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.username=root spring.datasource.password=root # MyBatis-Plus配置 mybatis-plus.mapper-locations=classpath:mapper/*.xml mybatis-plus.type-aliases-package=com.example.entity ``` 3. 创建实体类 使用MyBatis-Plus需要创建实体类,并且在实体类中使用注解来映射数据库表和字段: ``` @Data @AllArgsConstructor @NoArgsConstructor @TableName("user") public class User { @TableId(type = IdType.AUTO) private Long id; private String name; private Integer age; private String email; } ``` 4. 创建Mapper接口 使用MyBatis-Plus需要创建Mapper接口,并且让该接口继承BaseMapper接口: ``` public interface UserMapper extends BaseMapper<User> { } ``` 5. 使用MyBatis-Plus进行CRUD操作 MyBatis-Plus提供了很多实用的方法来进行CRUD操作,如save、updateById、removeById等方法。使用起来非常方便,如下所示: ``` @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public void saveUser(User user) { userMapper.insert(user); } @Override public void updateUser(User user) { userMapper.updateById(user); } @Override public void deleteUser(Long id) { userMapper.deleteById(id); } @Override public User getUserById(Long id) { return userMapper.selectById(id); } @Override public List<User> getAllUsers() { return userMapper.selectList(null); } @Override public List<User> getUsersByName(String name) { QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.eq("name", name); return userMapper.selectList(wrapper); } } ``` 以上就是MyBatis-Plus的使用教程,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值