快速上手Mybatis-Plus 入门案例

写在前面更多知识总结见Mybatis-Plus专栏
内容总结自尚硅谷杨博超老师的视频
博主对于该知识尚在学习阶段
如果发现存在问题请毫不吝啬的指出
扎哇太枣糕的博客首页

文章目录

  • 1 初识Mybatis-Plus
  • 2 入门案例

1 初识Mybatis-Plus

  MyBatis-Plus简称 MP,是一个 MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatis-Plus有很多的特点支持很多的标准数据库,具体等学到相关特性的时候再去详细了解。MyBatis-Plus的官方文档:https://baomidou.com/
  关于MyBatis-Plus的框架结构,也就是框架的底层实现官方文档给出如下试图,简单总结来就是:扫描实体类,通过反射抽取实体类中的属性并分析其与表中字段之间的关系,最后调用MyBatis-Plus提供的一堆方法生成SQL语句注入到MyBatis的容器中,从而实现不同的增删改查功能
快速上手Mybatis-Plus 入门案例_第1张图片

2 入门案例

前期环境准备

第一步: 创建数据库表并插入数据

CREATE TABLE `user` ( 
	`id` bigint(20) NOT NULL COMMENT '主键ID', 
	`name` varchar(30) DEFAULT NULL COMMENT '姓名', 
	`age` int(11) DEFAULT NULL COMMENT '年龄', 
	`email` varchar(50) DEFAULT NULL COMMENT '邮箱', 
	PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO user (id, name, age, email) VALUES 
(1, 'Jone', 18, '[email protected]'), 
(2, 'Jack', 20, '[email protected]'), 
(3, 'Tom', 28, '[email protected]'), 
(4, 'Sandy', 21, '[email protected]'), 
(5, 'Billie', 24, '[email protected]');

第二步: 使用Spring Initializr快速创建一个SpringBoot工程
快速上手Mybatis-Plus 入门案例_第2张图片删除选中的不必要文件以及文件夹快速上手Mybatis-Plus 入门案例_第3张图片第三步: pom文件导入相关依赖


<dependency>
    <groupId>com.baomidougroupId>
    <artifactId>mybatis-plus-boot-starterartifactId>
    <version>3.5.1version>
dependency>


<dependency>
    <groupId>org.projectlombokgroupId>
    <artifactId>lombokartifactId>
    <optional>trueoptional>
dependency>


<dependency>
    <groupId>mysqlgroupId>
    <artifactId>mysql-connector-javaartifactId>
    <version>5.1.32version>
    <scope>runtimescope>
dependency>


<dependency>
    <groupId>com.alibabagroupId>
    <artifactId>druid-spring-boot-starterartifactId>
    <version>1.1.17version>
dependency>

第四步: 配置文件改后缀为.yml并配置数据源

spring:
  # 数据源的各种配置
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/mybatis_plus
    username: root
    password: 123456
    
# Mybatis-Plus开启日志打印
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

各层代码编写

domain层实体类

/**
 * @author : mereign
 * @date : 2022/3/13 - 14:28
 * @desc : user实体类
 */

// 在编译期间生成user类的全参构造方法
@AllArgsConstructor
// 在编译期间生成user类的无参构造方法
@NoArgsConstructor
// 在编译期间生成封装属性的setter、getter方法,并重写了toString和equals、hashCode方法
@Data
public class User {

    private Long id;
    private String name;
    private Integer age;
    private String email;

}

mapper层继承接口

/**
 * @author : mereign
 * @date : 2022/3/13 - 15:43
 * @desc : 创建mapper接口继承BaseMapper接口并传user泛型
 */
 
// spring框架创建mapper接口相对应的接口实现类
@Mapper
public interface UserMapper extends BaseMapper<User> {
}

测试类

/**
 * @author : mereign
 * @date : 2022/3/13 - 15:50
 * @desc : 测试类简单测试mp的查询方法
 */

@SpringBootTest
public class MybatisPlusTest {

    @Autowired
    UserMapper mapper;

    @Test
    public void selectListTest() {
        // 通过条件构造器查询到一个list集合,如果没有条件的话参数设置为null
        List<User> users = mapper.selectList(null);
        users.forEach(System.out::println);
    }
}

入门案例查询结果在这里插入图片描述入门案例中的小知识点

⚠ 测试类中注入mapper组件的时候代码会报红,但是并不会影响最终的程序执行结果。原因是:@Mapper接口将该接口动态生成的代理类注入到IOC容器中起相应的作用,所以使用自动注入mapper的时候会报红在容器中找不到这个接口组件。解决方法:在mapper接口上加@Repository注解将类或接口标注为一个持久层组件。这样的话一个注解用来起作用,一个注解用来注入的时候找到接口组件防止报红
⚠ 生成的SQL语句中,表名为mapper接口传入的泛型首字母小写,表中字段名为泛型类的封装属性,如果需要修改实体类绑定的表名的话需要在实体类上使用@TableName注解

你可能感兴趣的:(Mybatis-Plus专栏,java,spring,boot,mybatis-plus)