SpirngBoot整合MybatisPlus 附源码
项目搭建
目录结构

pom.xml
<?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.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.cyb</groupId>
<artifactId>springboot-mybatisplus</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-mybatisplus</name>
<description>springboot整合mybatisplus</description> <properties>
<java.version>1.8</java.version>
</properties> <dependencies>
<!--SpringBoot依赖开始-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</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>
<!--SpringBoot依赖结束-->
<!--mysql依赖开始-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--mysql依赖结束-->
<!--MybatisPlus依赖开始-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
<!--MybatisPlus依赖结束-->
<!--Junit测试依赖开始-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<!--Junit测试依赖结束-->
</dependencies> <build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build> </project>
application.properties
server.port=8080 #mysql
spring.datasource.url=jdbc:mysql://localhost:3306/nba?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#mybatis-plus
mybatis-plus.mapper-locations=classpath:com/mht/springbootmybatisplus/mapper/xml/*.xml
mybatis-plus.type-aliases-package=com.mht.springbootmybatisplus.entity
mybatis-plus.configuration.map-underscore-to-camel-case: true
注入分页
MybatisPlusConfig.java
package com.cyb.config; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; /**
* @ClassName:MybatisPlusConfig
* @Description:分页配置
* @Author:chenyb
* @Date:2020/9/24 9:31 上午
* @Versiion:1.0
*/
@Configuration
@ConditionalOnClass(value = PaginationInnerInterceptor.class)
public class MybatisPlusConfig {
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
return paginationInterceptor;
}
}
dao层
NbaTestDao.java
package com.cyb.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cyb.entity.NbaTest; public interface NbaTestDao extends BaseMapper<NbaTest> {
}
实体类
NbaTest.java
package com.cyb.entity; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import java.util.Date; /**
* @ClassName:NbaPlayer
* @Description:实体类
* @Author:chenyb
* @Date:2020/9/23 4:29 下午
* @Versiion:1.0
*/
//表名
@TableName("nba_test")
public class NbaTest {
//表字段与实体类对应关系
@TableField("id")
@TableId
private int id;
@TableField("name")
private String name;
@TableField("age")
private int age;
@TableField("create_date")
private Date createDate; public Integer getId() {
return id;
} public void setId(Integer id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Integer getAge() {
return age;
} public void setAge(Integer age) {
this.age = age;
} public Date getCreateDate() {
return createDate;
} public void setCreateDate(Date createDate) {
this.createDate = createDate;
} @Override
public String toString() {
return "NbaTest{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", createDate=" + createDate +
'}';
}
}

启动类上扫描dao

数据库表字段

测试类
package com.cyb; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cyb.dao.NbaTestDao;
import com.cyb.entity.NbaTest;
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 java.util.Date;
import java.util.List; @RunWith(SpringRunner.class)
@SpringBootTest(classes = StartApplication.class)
public class Test01 {
@Autowired
private NbaTestDao nbaTestDao; /**
* 添加
*/
@Test
public void add() {
for (int x=0;x<100;x++){
NbaTest nbaTest=new NbaTest();
nbaTest.setAge(25+x);
nbaTest.setCreateDate(new Date());
nbaTest.setName("陈彦斌===="+x);
nbaTestDao.insert(nbaTest);
}
System.out.println("ok~~~~~~~~~");
} /**
* 更新
*/
@Test
public void update(){
NbaTest nbaTest=new NbaTest();
nbaTest.setId(2);
nbaTest.setName("修改");
nbaTest.setAge(0);
nbaTestDao.updateById(nbaTest);
System.out.println("update=====");
} /**
* 删除
*/
@Test
public void delete(){
nbaTestDao.deleteById(2);
System.out.println("delete==========");
} /**
* 查询
*/
@Test
public void selete(){
QueryWrapper<NbaTest> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name","陈彦斌====6");
List<NbaTest> nbaTests = nbaTestDao.selectList(queryWrapper);
System.out.println(nbaTests);
} /**
* 分页查询
*/
@Test
public void seleteByPage(){
int start=2;
int end=5;
IPage<NbaTest> userPage=new Page<>(start,end);
QueryWrapper<NbaTest> queryWrapper = new QueryWrapper<>();
List<NbaTest> records = nbaTestDao.selectPage(userPage, queryWrapper).getRecords();
for (NbaTest nt:records){
System.out.println(nt);
}
}
}
搞定~
SpirngBoot整合MybatisPlus 附源码的更多相关文章
- SSM 三大框架系列:Spring 5 + Spring MVC 5 + MyBatis 3.5 整合(附源码)
之前整理了一下新版本的 SSM 三大框架,这篇文章是关于它的整合过程和项目源码,版本号分别为:Spring 5.2.2.RELEASE.SpringMVC 5.2.2.RELEASE.MyBatis ...
- PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二手急速响应捡垃圾平台_3(附源码持续更新)
说明 文章首发于HURUWO的博客小站,本平台做同步备份发布. 如有浏览或访问异常图片加载失败或者相关疑问可前往原博客下评论浏览. 原文链接 PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二 ...
- SpringBoot2.x整合Prometheus+Grafana【附源码+视频】
图文并茂,新手入门教程,建议收藏 SpringBoot2.x整合Prometheus+Grafana[附源码+视频] 附源码+视频 目录 工程简介 简介 Prometheus grafana Spri ...
- 在网站开发中很有用的8个 jQuery 效果【附源码】
jQuery 作为最优秀 JavaScript 库之一,改变了很多人编写 JavaScript 的方式.它简化了 HTML 文档遍历,事件处理,动画和 Ajax 交互,而且有成千上万的成熟 jQuer ...
- Web 开发中很实用的10个效果【附源码下载】
在工作中,我们可能会用到各种交互效果.而这些效果在平常翻看文章的时候碰到很多,但是一时半会又想不起来在哪,所以养成知识整理的习惯是很有必要的.这篇文章给大家推荐10个在 Web 开发中很有用的效果,记 ...
- MVC系列——MVC源码学习:打造自己的MVC框架(二:附源码)
前言:上篇介绍了下 MVC5 的核心原理,整篇文章比较偏理论,所以相对比较枯燥.今天就来根据上篇的理论一步一步进行实践,通过自己写的一个简易MVC框架逐步理解,相信通过这一篇的实践,你会对MVC有一个 ...
- C#进阶系列——一步一步封装自己的HtmlHelper组件:BootstrapHelper(三:附源码)
前言:之前的两篇封装了一些基础的表单组件,这篇继续来封装几个基于bootstrap的其他组件.和上篇不同的是,这篇的有几个组件需要某些js文件的支持. 本文原创地址:http://www.cnblog ...
- 轻量级通信引擎StriveEngine —— C/S通信demo(2) —— 使用二进制协议 (附源码)
在网络上,交互的双方基于TCP或UDP进行通信,通信协议的格式通常分为两类:文本消息.二进制消息. 文本协议相对简单,通常使用一个特殊的标记符作为一个消息的结束. 二进制协议,通常是由消息头(Head ...
- jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
上一篇记录了BaiduTemplate模板引擎使用示例附源码,在此基础上对使用方法进行了封装 自定义插件jajaxrefresh.js 代码如下: //闭包限定命名空间 (function ($) { ...
- 精选9个值得学习的 HTML5 效果【附源码】
这里精选了一组很酷的 HTML5 效果.HTML5 是现 Web 开发领域的热点, 拥有很多让人期待已久的新特性,特别是在移动端,Web 开发人员可以借助 HTML5 强大功能轻松制作各种交互性强.效 ...
随机推荐
- C 语言编程 — 高级数据类型 — 数组
目录 文章目录 目录 前文列表 数组 声明数组 初始化数据 访问数组元素 二维数组 指向数组的指针 将数组指针作为实参传入函数 从函数返回一个数组指针 指针数组 数组名和取数组首地址的区别 前文列表 ...
- PageOffice在线打开编辑Word文件获取指定区域的数据并且保存整篇文件
一.首先在word文件中给需要在后台获取数据的区域设置以PO_开头的书签. 二.通过pageoffice在线打开文件并编辑保存.有两种打开文件的模式 1.普通编辑模式(docNormalEdit) 普 ...
- mongodb的备份与恢复详解
简单 Mongodb导出与导入 1: 导入/导出可以操作的是本地的mongodb服务器,也可以是远程的.所以,都有如下通用选项:-h host 主机--port port 端口-u username ...
- Python:global、local与nonlocal变量
1 local和global变量 先来看一个最简单的Python程序例子: import numpy as np n = 2 def func(a): b = 1 return a + b print ...
- SASS 运算 (Operations)符的基本使用
sass 运算符虽然没有像那些编程语言那么强大,但为了更灵活的输出css,也增强了一些运算符的功能,例如赋值运算符.等号操作符.比较运算符.逻辑运算符.字符串运算符...等等,接下来就来详细介绍下 ...
- C++笔记(4)友元
通常情况下,公有类方法是访问类对象私有部分的唯一途径.除此之外,C++还提供了另外一种形式的访问权限:友元. 友元有三种: 友元函数 友元类 友元成员函数 通过让函数成为类的友元,可以赋予该函数与类的 ...
- itest(爱测试) 开源接口测试,敏捷测试管理平台10.0.0GA 发布
一:itest work 简介 itest work 开源敏捷测试管理,包含极简的任务管理,测试管理,缺陷管理,测试环境管理,接口测试,接口Mock,还有压测 ,又有丰富的统计分析,8合1工作站.可按 ...
- 探索Semantic Plugins:开启大模型的技能之门
前言 在之前的章节中我们或多或少的已经接触到了 Semantic Kernel 的 Plugins,本章我们讲详细介绍如何使用插件. Semantic Kernel 的一大特点是拥有强大的插件,通过结 ...
- tab切换之循环遍历
<style> *{ margin: 0; padding:0; } ul,ol,li{ ...
- 利用夜莺开源版对H3C无线设备监控
编者荐语:真正搞监控的人肯定知道 SNMP 水有多深,有时我甚至腹黑猜测,这些厂商是故意的吧,,,指标不标准,格式各异,只能靠一款灵活的采集器了,本文是夜莺社区用户写的文章,转给大家参考. autho ...