服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Mybatis-Plus环境配置与入门案例分析

Mybatis-Plus环境配置与入门案例分析

2022-10-12 13:09扎哇太枣糕 Java教程

MyBatis-Plus 是一个 Mybatis 增强版工具,在 MyBatis 上扩充了其他功能没有改变其基本功能,为了简化开发提交效率而存在,本篇文章带你配置环境并认识它

1 初识Mybatis-Plus

  MyBatis-Plus简称 MP,是一个 MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatis-Plus有很多的特点支持很多的标准数据库,具体等学到相关特性的时候再去详细了解。MyBatis-Plus的官方文档:https://baomidou.com/

关于MyBatis-Plus的框架结构,也就是框架的底层实现官方文档给出如下试图,简单总结来就是:扫描实体类,通过反射抽取实体类中的属性并分析其与表中字段之间的关系,最后调用MyBatis-Plus提供的一堆方法生成SQL语句注入到MyBatis的容器中,从而实现不同的增删改查功能

Mybatis-Plus环境配置与入门案例分析

 

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, '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');

第二步: 使用Spring Initializr快速创建一个SpringBoot工程

Mybatis-Plus环境配置与入门案例分析

删除选中的不必要文件以及文件夹

Mybatis-Plus环境配置与入门案例分析

第三步: pom文件导入相关依赖

<!--mybatis-的场景启动器-->
<dependency>
  <groupId>com.baomidou</groupId>
  <artifactId>mybatis-plus-boot-starter</artifactId>
  <version>3.5.1</version>
</dependency>

<!--lombok简化实体类开发,如果之前没有下载过依赖的同名插件的话需要下载安装,然后重启一下idea-->
<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <optional>true</optional>
</dependency>

<!--数据库连接驱动-->
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.32</version>
  <scope>runtime</scope>
</dependency>

<!--整合druid的数据源-->
<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>druid-spring-boot-starter</artifactId>
  <version>1.1.17</version>
</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);
  }
}

入门案例查询结果

Mybatis-Plus环境配置与入门案例分析

入门案例中的小知识点

测试类中注入mapper组件的时候代码会报红,但是并不会影响最终的程序执行结果。原因是:@Mapper接口将该接口动态生成的代理类注入到IOC容器中起相应的作用,所以使用自动注入mapper的时候会报红在容器中找不到这个接口组件。解决方法:在mapper接口上加@Repository注解将类或接口标注为一个持久层组件。这样的话一个注解用来起作用,一个注解用来注入的时候找到接口组件防止报红 

生成的SQL语句中,表名为mapper接口传入的泛型首字母小写,表中字段名为泛型类的封装属性,如果需要修改实体类绑定的表名的话需要在实体类上使用@TableName注解

到此这篇关于Mybatis-Plus环境配置与入门案例分析的文章就介绍到这了,更多相关Mybatis-Plus 入门内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/qq_59138417/article/details/123454703

延伸 · 阅读

精彩推荐
  • Java教程Java模拟有序链表数据结构的示例

    Java模拟有序链表数据结构的示例

    这篇文章主要介绍了Java模拟有序链表数据结构的示例,包括一个反序的单链表结构的例子,需要的朋友可以参考下 ...

    匆忙拥挤repeat2622020-04-18
  • Java教程Eclipse Web项目打成war包的方法图解

    Eclipse Web项目打成war包的方法图解

    当Tomcat启动后该压缩文件自动解压缩,war包方便了web工程的发布,那么Eclipse中如何将Web项目打成war包呢?下面小编通过图文并茂的方式给大家讲解下Eclip...

    不动声色的蜗牛5222020-06-08
  • Java教程MyBatis 与 Spring 的完美整合方法

    MyBatis 与 Spring 的完美整合方法

    MyBatis 和 Spring 两大框架已经成了 Java 互联网技术主流框架组合,它们经受住了大数据量和大批量请求的考验,在互联网系统中得到了广泛的应用。这篇文章...

    我没有三颗心脏4292021-04-22
  • Java教程Java synchronized轻量级锁的核心原理详解

    Java synchronized轻量级锁的核心原理详解

    这篇文章主要为大家详细介绍了Java synchronized轻量级锁的核心原理,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    小小茶花女11352022-08-13
  • Java教程Mybatis动态调用表名和字段名的解决方法

    Mybatis动态调用表名和字段名的解决方法

    今天在项目开发中有个业务是需要限制各个用户对某些表里的字段查询以及某些字段是否显示,这种情况下,就需要构建sql来动态传入表名、字段名了,下面...

    猿人谷2342020-06-22
  • Java教程Quarkus云原生开篇java框架简介

    Quarkus云原生开篇java框架简介

    Quarkus 是小红帽开源的专门针对云容器环境优化的云原生java框架,博主接下来的项目估计都会使用这个框架来开发,相关的问题都会记录在这个系列,本文...

    kl6382022-07-19
  • Java教程spring data jpa 创建方法名进行简单查询方式

    spring data jpa 创建方法名进行简单查询方式

    这篇文章主要介绍了spring data jpa 创建方法名进行简单查询方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...

    node20175382022-07-19
  • Java教程seata springcloud整合教程与遇到的坑

    seata springcloud整合教程与遇到的坑

    seata 是alibaba 出的一款分布式事务管理器,他有侵入性小,实现简单等特点。这篇文章主要介绍了seata springcloud整合教程与遇到的坑,需要的朋友可以参考下...

    路过君_P6792021-09-28