MyBatis-Plus初步学习(一)
MyBatis-Plus初步学习(一)
此篇文章为该课堂笔记
一 MyBatis-Plus初步了解
官方定义:Mybatis-Plus(简称MP)是一个 Mybatis 的增强工具,在 Mybatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
mybatis-plus官网。
MyBatis-Plus的入门指导
1.1 MP学习前的技术储备
1》Java+数据库;2》熟悉SpringBoot,Maven;3》熟悉MyBatis
1.2 MP开发环境(自用)
1》window10;2》Eclipse;3》JDK1.8;4》Maven3.5;5》MySQL5.7
1.3 MyBatis与JPA
这两个是Java中两个有名的持久层框架
1.3.1 JPA简介
JPA,全称Java Persistence API(Java持久层API),是一种标准与规范(?),著名实现Hibernate。
JPA主要是按照约定好的方法命名规则书写dao层接口,就可以在不写接口实现的情况下,实现对数据库的访问和操作。同时提供了除了CRUD之外的功能,比如:分页,排序,复杂查序等。
1.3.2 JPA的优势
1》JPA的移植性比较好(JPQL语句(?));
2》提供了很多CRUD方法,开发效率高;
3》对象化程度更高(?)。
1.3.3 MyBatis的优势
1》SQL语句可以自由控制,更灵活,性能较高(相对于JPA);
2》SQL语句与代码分离,易于维护与阅读(xml与注解);
3》提供了xml标签,支持编写动态SQL语句。
1.3.4 MyBatis的劣势
1》简单的CRUD操作也必须写SQL语句;
2》xml中有大量的SQL语句需要维护;
3》MyBatis自身功能有限(?),但支持Plugin(?)。
1.3.5 MP
再没有改变MyBatis的基础上,去掉的劣势(?)。
1.4 MP快速入门小例子
在环境已搭好的情况的下,
1》建立数据库,建立表格,设置数据;
2》创建Maven工程,配置pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>mybatisplus</groupId>
<artifactId>mybatisplus</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- SpringBoot Starter 父工程 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<dependencies>
<!-- SpringBoot 启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- SpringBoot test启动器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- MybatisPlus 启动器 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.1.tmp</version>
</dependency>
<!-- MySQL JDBC驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
<!-- 未写版本号,因为在spring-boot-starter中已定义 -->
</dependency>
<!-- Lombok,不用在类中书写get与set方法 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
</project>
2》创建实体类;
package com.mp.entity;
import java.time.LocalDateTime;
import lombok.Data;
@Data //Lombok,可以自动生成Get与Set
public class User {
//主键
private Long id;
//姓名
private String name;
//年龄
private Integer age;
//邮箱
private String email;
//上级id
private Long managerId;
//创建时间
private LocalDateTime createTime;
}
3》创建该实体类对应接口
package com.mp.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mp.entity.User;
//继承BaseMapper,使UserMapper可以使用MP中已定义好的方法
public interface UserMapper extends BaseMapper<user>{
}
4》创建SpringBoot启动类
package com.mp;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication //标识该类为SpringBoot的启动类
@MapperScan("com.mp.dao") //添加包扫描
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args); //调用启动方法
}
}
5》在测试文件夹中,创建测试类
package com.mp;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import com.mp.dao.UserMapper;
import com.mp.entity.User;
@SpringBootTest //该注解,标识该类可以基于SpringBoot进行测试,类似Junit(?)
@RunWith(SpringRunner.class) //该注解为运行器,使该类可在SpringBoot环境下,进行Junit测试(?)
public class SimpleTest {
@Autowired //自动绑定对应bean
private UserMapper userMapper;
@Test
public void select() {
List<User> userlist = userMapper.selectList(null);
userlist.forEach(System.out::println);
}
}
6》选中select方法,右键Junit运行,就成功了