Springboot 整合Mybatis-plus小测试
本文属于自己学习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小测试相关推荐
- STS安装配置及写的一个springboot整合mybatis的小demo
新入职的猿,师傅给了一个小任务,用STS写一个springboot整合mybatis的小demo.由于之前没用过STS和eclipse,所以听到这个任务还是比较懵逼的,经过一天的摸索,慢慢的摸出了门道 ...
- SpringBoot整合Mybatis(高级)
SpringBoot整合Mybatis(高级) 文章目录 SpringBoot整合Mybatis(高级) 前言 基础环境配置 增删改查 ResultMap 复杂查询 多对一 一对多 动态SQL if ...
- springboot 整合mybatis plus
简单介绍下 mybatis plus,mybatis plus(简称 MP)是一个 mybatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发.提高效率而生. 本文讲解使用 ...
- SpringBoot整合mybatis、shiro、redis实现基于数据库的细粒度动态权限管理系统实例(转)...
SpringBoot整合mybatis.shiro.redis实现基于数据库的细粒度动态权限管理系统实例 shiro 目录(?)[+] 前言 表结构 maven配置 配置Druid 配置mybatis ...
- SpringBoot整合Mybatis超详细流程
SpringBoot整合Mybatis超详细流程 文章目录 SpringBoot整合Mybatis超详细流程 前言 详细流程 0.引入Mybatis 1.创建数据 2.创建程序目录 3.理解后台访问流 ...
- 3、SpringBoot整合MyBatis注解版及配置文件版
目录 1.配置pom.xml 2.配置application.yml 3.配置DruidConfig关联yml的配置文件spring.datasource 4.创建数据库及数据库表结构 5.创建对应的 ...
- (一)SpringBoot 整合 MyBatis
一.工具 IDE:idea.DB:mysql 二.创建SpringBoot工程 在Idea中使用SpringInitializr模板创建SpringBoot工程,依赖选择如下: 这里也可以不选JDBC ...
- SpringBoot整合mybatis进行快速开发
SpringBoot整合mybatis进行数据库操作 1.环境的搭建 pom.xml <!--核心模块,包括自动配置支持.日志和YAML --> <dependencies>& ...
- springboot整合mysql5.7_详解SpringBoot整合MyBatis详细教程
1. 导入依赖 首先新建一个springboot项目,勾选组件时勾选Spring Web.JDBC API.MySQL Driver 然后导入以下整合依赖 org.mybatis.spring.boo ...
- SpringBoot整合Mybatis,并实现事务控制
SpringBoot整合Mybatis,并实现事务控制 1. 在pom文件里添加相关maven文件 <parent><groupId>org.springframework.b ...
最新文章
- Android 布局开发之百分比布局、弹性布局
- 动效设计中的隐喻-2
- 达摩院2020十大科技趋势发布:科技浪潮新十年序幕开启
- linux 编译链接出错,Qt编译和链接错误
- jar包可以到maven下载
- NLP中的绿色Finetune方法
- 签证计算机专业敏感吗,签证中最常见被check的14个敏感专业
- Xcode添加include目录
- 数据结构导论-不得不知的基础
- android sd卡如何读取,Android应用中怎么读取 sd卡中的数据
- echarts飞机航线图修改飞机的样式
- 新视野大学英语3视听说教程智慧版听力原文 Further practice in listening
- 解决Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin
- adb连接雷电模拟器失败
- 三星Android Pie软件,三星开始向欧洲Galaxy S9用户推送Android Pie稳定版更新包
- 【UOJ#311】【UNR #2】积劳成疾(动态规划)
- linux 防火墙的配置
- CRFEntityExtractor文档
- 02384计算机原理2019真题,全国2002年10月自考02384计算机原理试卷
- 更改sqlserver服务器的登录名称