本文属于自己学习mybatis-plus的一些总结经验。

==Mybatis-plus与Mybatis比较

MyBatis:是一种操作数据库的框架,提供一种Mapper类,支持让你用java代码进行增删改查的数据库操作,省去了每次都要手写sql语句的麻烦。但是!有一个前提,你得先在xml中写好sql语句。 

MyBatis-plus:MP的存在就是为了稍稍弥补Mybatis的不足。在我们使用Mybatis时会发现,每当要写一个业务逻辑的时候都要在DAO层写一个方法,再对应一个SQL,即使是简单的条件查询、即使仅仅改变了一个条件都要在DAO层新增一个方法,针对这个问题,MP就提供了一个很好的解决方案,它可以让我们避免许多重复性的工作。

一、首先注入以下依赖

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><!--        测试依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--      方便写代码--><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></dependency><!--       mysql驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><exclusions><exclusion><groupId>com.google.protobuf</groupId><artifactId>protobuf-java</artifactId></exclusion></exclusions></dependency><!--        MP依赖--><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3.1</version></dependency><!--        jsp的执行引擎--><dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-jasper</artifactId></dependency><!--        邮箱--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency><!--        热部署--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional><scope>true</scope></dependency><!--        jstl依赖--><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId></dependency><!--        redis--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency></dependencies>

基本的yml配置

server:port: 8090
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverusername: rootpassword: rooturl: jdbc:mysql://localhost:3306/txt?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghaimybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImplglobal-config:db-config:id-type: auto

mysql://localhost:3306/txt 这个地址要更换成自己数据库名字

二、创建数据库

数据库名:txt  表名:tb_user

三、写实体层代码

实体层–>数据库在项目中的类(也称model层,pojo层);

主要用于定义与数据库对象应的属性,提供get/set方法,tostring方法,有参无参构造函数

package com.example.pojo;import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@NoArgsConstructor
@AllArgsConstructor
@TableName("tb_user")
public class User {@TableId(type = IdType.AUTO) //id类型为自增private String  userName;private String  name;private String  age;private String  email;private String  password;public Long getId() {return id;}public void setId(Long id) {this.id = id;}private Long id;public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAge() {return age;}public void setAge(String age) {this.age = age;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}}

四、持久层代码

持久层–>与数据库交互(也称Mapper层); dao层的作用为访问数据库,向数据库发送sql语句,完成数据的增删改查任务。

Dao层首先会创建Dao接口,接着就可以在配置文件中定义该接口的实现类;然后就可以在模块中调用Dao的接口进行数据业务的处理,而不用关注此接口的具体实现类是哪一个类,Dao层的数据源和数据库连接的参数都是在配置文件中进行配置的。

package com.example.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.pojo.User;public interface UserMapper extends BaseMapper<User> {
}

ps:在主函数下增加

@MapperScan("com.example.mapper")

作用:指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类    添加位置:是在Springboot启动类上面添加。

五、编写查询类代码

package com.example.test;import com.example.mapper.UserMapper;
import org.apache.ibatis.annotations.Mapper;
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.example.pojo.User;import java.util.List;@Mapper
@RunWith(SpringRunner.class)
@SpringBootTestpublic class TestApplicationTests {@Autowiredprotected UserMapper userMapper;@Testpublic void testSelect() {List<User> userList = userMapper.selectList(null);for (User user : userList) {System.out.println(user);}}}

六、测试运行

 运行成功,接下来编写插入测试类试一下

七、插入功能测试

package com.example.test;import com.example.mapper.UserMapper;
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.example.pojo.User;@RunWith(SpringRunner.class)
@SpringBootTest
public class TestApplicationTests {@Autowiredprivate UserMapper userMapper;@Testpublic void testapplication(){User user = new User();user.setEmail("Azure@123456");user.setName("Azure");user.setUserName("wzh");user.setPassword("qwe123");int result = this.userMapper.insert(user);System.out.println("result" +result);System.out.println(user.getId());}
}

运行成功,看一下数据库

成功插入了数据!

总结:

学习过成终于到了一些问题

1、@MapperScan的使用,一定要看清目录,确保它能扫描到mapper层,不然一定会报错

2、在实体类中,可以用快捷方式进行get set的构造,省了很多工作量。

最后是项目目录结构

Springboot 整合Mybatis-plus小测试相关推荐

  1. STS安装配置及写的一个springboot整合mybatis的小demo

    新入职的猿,师傅给了一个小任务,用STS写一个springboot整合mybatis的小demo.由于之前没用过STS和eclipse,所以听到这个任务还是比较懵逼的,经过一天的摸索,慢慢的摸出了门道 ...

  2. SpringBoot整合Mybatis(高级)

    SpringBoot整合Mybatis(高级) 文章目录 SpringBoot整合Mybatis(高级) 前言 基础环境配置 增删改查 ResultMap 复杂查询 多对一 一对多 动态SQL if ...

  3. springboot 整合mybatis plus

    简单介绍下 mybatis plus,mybatis plus(简称 MP)是一个 mybatis  的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 本文讲解使用 ...

  4. SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例(转)...

    SpringBoot整合mybatis.shiro.redis实现基于数据库的细粒度动态权限管理系统实例 shiro 目录(?)[+] 前言 表结构 maven配置 配置Druid 配置mybatis ...

  5. SpringBoot整合Mybatis超详细流程

    SpringBoot整合Mybatis超详细流程 文章目录 SpringBoot整合Mybatis超详细流程 前言 详细流程 0.引入Mybatis 1.创建数据 2.创建程序目录 3.理解后台访问流 ...

  6. 3、SpringBoot整合MyBatis注解版及配置文件版

    目录 1.配置pom.xml 2.配置application.yml 3.配置DruidConfig关联yml的配置文件spring.datasource 4.创建数据库及数据库表结构 5.创建对应的 ...

  7. (一)SpringBoot 整合 MyBatis

    一.工具 IDE:idea.DB:mysql 二.创建SpringBoot工程 在Idea中使用SpringInitializr模板创建SpringBoot工程,依赖选择如下: 这里也可以不选JDBC ...

  8. SpringBoot整合mybatis进行快速开发

    SpringBoot整合mybatis进行数据库操作 1.环境的搭建 pom.xml <!--核心模块,包括自动配置支持.日志和YAML --> <dependencies>& ...

  9. springboot整合mysql5.7_详解SpringBoot整合MyBatis详细教程

    1. 导入依赖 首先新建一个springboot项目,勾选组件时勾选Spring Web.JDBC API.MySQL Driver 然后导入以下整合依赖 org.mybatis.spring.boo ...

  10. SpringBoot整合Mybatis,并实现事务控制

    SpringBoot整合Mybatis,并实现事务控制 1. 在pom文件里添加相关maven文件 <parent><groupId>org.springframework.b ...

最新文章

  1. Android 布局开发之百分比布局、弹性布局
  2. 动效设计中的隐喻-2
  3. 达摩院2020十大科技趋势发布:科技浪潮新十年序幕开启
  4. linux 编译链接出错,Qt编译和链接错误
  5. jar包可以到maven下载
  6. NLP中的绿色Finetune方法
  7. 签证计算机专业敏感吗,签证中最常见被check的14个敏感专业
  8. Xcode添加include目录
  9. 数据结构导论-不得不知的基础
  10. android sd卡如何读取,Android应用中怎么读取 sd卡中的数据
  11. echarts飞机航线图修改飞机的样式
  12. 新视野大学英语3视听说教程智慧版听力原文 Further practice in listening
  13. 解决Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin
  14. adb连接雷电模拟器失败
  15. 三星Android Pie软件,三星开始向欧洲Galaxy S9用户推送Android Pie稳定版更新包
  16. 【UOJ#311】【UNR #2】积劳成疾(动态规划)
  17. linux 防火墙的配置
  18. CRFEntityExtractor文档
  19. 02384计算机原理2019真题,全国2002年10月自考02384计算机原理试卷
  20. 更改sqlserver服务器的登录名称

热门文章

  1. JPEG编码过程中的霍夫曼编码
  2. 服务器应用程序不可用
  3. intra-class与inter-class的区别
  4. 赢未来杂志赢未来杂志社赢未来编辑部2022年第7期目录
  5. 用主题模型可视化分析911新闻(Python版)
  6. 水瓶座的人真的很冷血吗
  7. SVN提示Checksum mismatch for expected: , actual:
  8. ffmpeg amovie movie 无法读取文件错误 找不到C、D、E、F
  9. SQL的all、any和some的用法
  10. SSL 2295——暗黑破坏神