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运行,就成功了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值