您好,欢迎来到站长目录(28sn.com)!


mybatis_plus简单学习

来源:网络整理 浏览:299次 时间:2020-11-29
数据库略二、初始化工程

使用 Spring Initializr 快速初始化一个 Spring Boot 工程

Group:com.atguigu
Artifact:mybatis-plus
版本:2.2.1.RELEASE

三、添加依赖

1、引入依赖
spring-boot-starter、spring-boot-starter-test
添加:mybatis-plus-boot-starter、MySQL、lombok、
在项目中使用Lombok可以减少很多重复代码的书写。比如说getter/setter/toString等方法的编写

<?xml version="1.0" encoding="UTF-8"?><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 https://maven.apache.org/xsd/maven-4.0.0.xsd">    <modelVersion>4.0.0</modelVersion>    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>2.3.0.RELEASE</version>        <relativePath/> <!-- lookup parent from repository -->    </parent>    <groupId>com.mybatisplus</groupId>    <artifactId>myplus</artifactId>    <version>0.0.1-SNAPSHOT</version>    <name>myplus</name>    <description>Demo project for Spring Boot</description>    <properties>        <java.version>1.8</java.version>    </properties>    <dependencies>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-thymeleaf</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>        <dependency>            <groupId>org.projectlombok</groupId>            <artifactId>lombok</artifactId>            <optional>true</optional>        </dependency>        <!--mybatis-plus-->        <dependency>            <groupId>com.baomidou</groupId>            <artifactId>mybatis-plus-boot-starter</artifactId>            <version>3.0.5</version>        </dependency>        <!--mysql-->        <dependency>            <groupId>mysql</groupId>            <artifactId>mysql-connector-java</artifactId>        </dependency>        <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->        <dependency>            <groupId>io.springfox</groupId>            <artifactId>springfox-swagger2</artifactId>            <version>2.9.2</version>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope>            <exclusions>                <exclusion>                    <groupId>org.junit.vintage</groupId>                    <artifactId>junit-vintage-engine</artifactId>                </exclusion>            </exclusions>        </dependency>    </dependencies>    <build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>            </plugin>        </plugins>    </build></project>
四、配置

在 application.properties 配置文件中添加 MySQL 数据库的相关配置:
mysql5

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/loadtest?serverTimezone=GMT%2B8spring.datasource.username=rootspring.datasource.password=123456#thymelea模板配置spring.thymeleaf.prefix=classpath:/templates/spring.thymeleaf.suffix=.htmlspring.thymeleaf.mode=HTML5spring.thymeleaf.encoding=UTF-8spring.thymeleaf.servlet.content-type=text/html#热部署文件,页面不产生缓存,及时更新# 开发阶段务必关闭缓存 (=false)spring.thymeleaf.cache=falsespring.resources.chain.strategy.content.enabled=truespring.resources.chain.strategy.content.paths=/**#logging.level.com.dy.springboot.server.mapper=debugspring.jackson.date-format=yyyy-MM-dd HH:mm:ssspring.jackson.time-zone=GMT+8spring.servlet.multipart.max-file-size=100MBspring.servlet.multipart.max-request-size=1000MBserver.port=8081#mybatis日志mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

注意:

1、这里的 url 使用了 ?serverTimezone=GMT%2B8 后缀,因为Spring Boot 2.1 集成了 8.0版本的jdbc驱动,这个版本的 jdbc 驱动需要添加这个后缀,否则运行测试用例报告如下错误:

java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more

2、这里的 driver-class-name 使用了 com.mysql.cj.jdbc.Driver ,在 jdbc 8 中 建议使用这个驱动,之前的 com.mysql.jdbc.Driver 已经被废弃,否则运行测试用例的时候会有 WARN 信息

五、编写代码

1、主类
在 Spring Boot 启动类中添加 @MapperScan 注解,扫描 Mapper 文件夹
注意:扫描的包名根据实际情况修改

import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;/** * * @author liwen406 * @date 2020-05-27 11:22 */@MapperScan("com.mybatisplus.mapper")@SpringBootApplicationpublic class MyplusApplication {    public static void main(String[] args) {        SpringApplication.run(MyplusApplication.class, args);    }}

2、实体
创建包 entity 编写实体类 ProjectInterface.java(此处使用了 Lombok 简化代码)

import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.TableId;import io.swagger.annotations.ApiModel;import io.swagger.annotations.ApiModelProperty;import lombok.Data;import lombok.EqualsAndHashCode;import lombok.experimental.Accessors;import java.io.Serializable;import java.util.Date;/** * <p> * 工程接口 * </p> * * @author liwen * @since 2020-05-25 */@Data@EqualsAndHashCode(callSuper = false)@Accessors(chain = true)@ApiModel(value = "ProjectInterface对象", description = "工程接口")public class ProjectInterface implements Serializable {    private static final long serialVersionUID = 1L;    @ApiModelProperty(value = "主键ID")    @TableId(value = "id", type = IdType.AUTO)    private Long id;    @ApiModelProperty(value = "工程id")    private Long projectId;    private String interName;    @ApiModelProperty(value = "接口url")

Lombok使用参考:
https://blog.csdn.net/motui/article/details/79012846

3、mapper
创建包 mapper 编写Mapper 接口: ProjectInterfaceMapper.java

import com.baomidou.mybatisplus.core.mapper.BaseMapper;import com.mybatisplus.pojo.ProjectInterface;import org.springframework.stereotype.Repository;/** * @author liwen * @Title: ProjectInterfaceMapper * @Description: * @date 2020/5/27 / 11:33 * IDEA在 userMapper 处报错,因为找不到注入的对象,因为类是动态创建的,但是程序可以正确的执行。 * <p> * 为了避免报错,可以在 dao 层 的接口上添加 @Repository 注 */@Repositorypublic interface ProjectInterfaceMapper extends BaseMapper<ProjectInterface> {}
六、开始使用

添加测试类,进行功能测试:

import com.mybatisplus.mapper.ProjectInterfaceMapper;import com.mybatisplus.pojo.ProjectInterface;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import java.util.List;@SpringBootTestclass MyplusApplicationTests {    @Autowired    ProjectInterfaceMapper projectInterfaceMapper;    @Test    void contextLoads() {        System.out.println(("----- selectAll method test ------"));        List<ProjectInterface> projectInterfaces = projectInterfaceMapper.selectList(null);        projectInterfaces.forEach(System.out::println);    }}

推荐站点

  • 我爱发烧音乐我爱发烧音乐

    我爱发烧音乐囊括了从流行音乐到古典音乐多个类型的音乐作品,专栏推荐最新的音乐,提供音乐排名榜单!可供免费线上收听音乐,歌曲流畅,音效极佳! 网站提供的钢琴以及二胡专栏,可供收听者,陶冶情操,改善心情,是难得的轻音乐典藏!

    www.520fs.com
  • 世纪音乐网世纪音乐网

    世纪音乐网是专业的在线音乐试听MP3下载网站。歌曲总计30余万首,收录了网上最新歌曲和流行音乐,DJ舞曲,非主流音乐,经典老歌,劲舞团歌曲,搞笑歌曲,儿童歌曲,英文歌曲等。是您上网听歌的最佳网站。

    www.ssjj.com
  • 怒江大峡谷网怒江大峡谷网

    怒江大峡谷网内容包括:新闻、要闻、怒江报、视频、文化、民俗、人文、音乐、政务、公告、政策等地方信息。

    www.nujiang.cn
  • 杭州网杭州网

      杭州网是杭州地区唯一的新闻门户网站,由中共杭州市委宣传部、杭州日报报业集团和杭州广播电视集团共同组建的杭州网络传媒有限公司运营。

    www.hangzhou.com.cn
  • 深圳在线深圳在线

      深圳在线 www.szol.net是深圳本地最大、最早的地方生活资讯网站之一,网站名“深圳在线www.szol.net”由南方报业传媒集团编辑委员会总编辑、南方日报社总编辑、南方都市报总编辑、南方书画院名誉院长王春芙亲笔题名,深圳在线www.szol.net团队与深圳热线www.szonline.net、奥一网www.oeeee.com都源于全国最早成立于1996年的知名网络公司——深圳万用网。

    www.szol.net

鄂公网安备 42062502000001号