springboot + mybatisPlus 入门实例 入门demo
springboot + mybatisPlus 入门实例 入门demo
使用mybatisPlus的优势
集成mybatisplus后,简单的CRUD就不用写了,如果没有特别的sql,就可以不用mapper的xml文件。
mybatisPlus官网: https://mp.baomidou.com/guide
项目搭建前提条件
1、IDEA,并且已安装lombok插件
2、mysql数据库,本实例采用mysql8.0版本,与mysql5.x版本有些不一样,如果使用mysql5.x,只需要修改相应的配置即可。
1. 导入相关依赖
如果项目中有mybatis依赖可以直接删除了,mybatisPlus里包含了mybatis的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- mybatisPlus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.2</version>
</dependency>
<!-- mysql 5.x驱动 -->
<!--<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.39</version>
</dependency>-->
<!-- mysql8.0 驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.21</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
2. yml 配置
server:
port: 8080
servlet:
context-path: /
tomcat:
uri-encoding: UTF-8
spring:
datasource:
# mysql5.x 配置,高版本需要加useSSL=false
#url: jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=false
# mysql8.0 需要加&useSSL=false&serverTimezone=UTC
url: jdbc:mysql://localhost:3306/test?zeroDateTimeBehavior=convertToNull&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
username: root
password: 123456
# mysql8.0 驱动
driver-class-name: com.mysql.cj.jdbc.Driver
# mysql5.x 驱动
#driver-class-name: com.mysql.jdbc.Driver
debug: false
#Druid#
name: test
type: com.alibaba.druid.pool.DruidDataSource
filters: stat
maxActive: 20
initialSize: 1
maxWait: 60000
minIdle: 1
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: select 'x'
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxOpenPreparedStatements: 20
#-----------------------------------------------------
# pom.xml引用 mybatis-plus包,需要这样配置
#mybatis:
# type-aliases-package: com.example.demo.model
# mapper-locations: classpath:mybatis/mappers/*.xml
# configuration:
# map-underscore-to-camel-case: true
#-----------------------------------------------------
#-----------------------------------------------------
# pom.xml引用 mybatis-plus-boot-starter包,需要这样配置
mybatis-plus:
type-aliases-package: com.example.demo.model
mapper-locations: classpath:mybatis/mappers/*.xml
configuration:
map-underscore-to-camel-case: true
#-----------------------------------------------------
3. 代码
User类
@TableId(type = IdType.AUTO) 表示我们使用自增主键
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.ToString;
import java.util.Date;
@Data
@ToString
@TableName("user_demo")
public class User {
@TableId(type = IdType.AUTO)
private Integer id;
@TableField("name")
private String name;
@TableField("password")
private String password;
@TableField("age")
private Integer age;
@TableField("email")
private String email;
/**
* 注意:此处如果不加 @TableField注解,mybatisPlus会默认将createTime映射成 create_time字段
* 由于数据库字段为createTime,所以需要指定
*/
@TableField("createTime")
private Date createTime;
}
mapper类
继承BaseMapper就可以,会把一些crud的操作帮我们自动生成注入。
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.demo.model.User;
public interface UserMapper extends BaseMapper<User> {
public User findUserByName(String name);
}
Controller类
import com.example.demo.mapper.UserMapper;
import com.example.demo.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserMapper userMapper;
/**
* 根据ID查找
* @param id
* @return
*/
@GetMapping("/get/{id}")
public String getUserById(@PathVariable String id){
User user = userMapper.selectById(id);
return "hello " + user.getName();
}
/**
* 根据name查找
* @param name
* @return
*/
@GetMapping("/name/{name}")
public String getUserByName(@PathVariable String name){
User user = userMapper.findUserByName(name);
return "getUserByName " + user.getName();
}
}
UserMapper.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mapper.UserMapper">
<resultMap id="userResultMap" type="com.example.demo.model.User" >
<id column="id" property="id" />
<result column="name" property="name" />
<result column="password" property="password" />
<result column="age" property="age" />
<result column="email" property="email" />
<result column="createTime" property="createTime" />
</resultMap>
<select id="findUserByName" resultMap="userResultMap">
SELECT
id,
name,
password,
age,
email,
createTime
FROM user_demo
where name = #{name}
</select>
</mapper>
实例运行效果
浏览器输入:http://localhost:8080/user/name/aaa
4. 写在最后
本实例源代码:https://gitee.com/jelly_oy/springboot-mybatisPlus-demo
本实例采用springboot2.3.3 + mybatis-plus3.3.2 + mysql8.0 进行搭建,如果使用mysql5.x,只需要修改相关配置即可。
如果本项目对你有帮助,欢迎留言评论,欢迎git clone源代码,
也欢迎对本项目进行捐助,你的鼓励将是我开源创造的动力!
springboot + mybatisPlus 入门实例 入门demo的更多相关文章
- springboot + kafka 入门实例 入门demo
springboot + kafka 入门实例 入门demo 版本说明 springboot版本:2.3.3.RELEASE kakfa服务端版本:kafka_2.12-2.6.0.tgz zooke ...
- spring-boot+mybatisPlus+shiro的集成demo 我用了5天
spring-boot + mybatis-plus + shiro 的集成demo我用了五天 关于shiro框架,我还是从飞机哪里听来的,就连小贱都知道,可我母鸡啊.简单百度了下,结论很好上手,比s ...
- 基于springboot构建dubbo的入门demo
之前记录了构建dubbo入门demo所需的环境以及基于普通maven项目构建dubbo的入门案例,今天记录在这些的基础上基于springboot来构建dubbo的入门demo:众所周知,springb ...
- vue入门 0 小demo (挂载点、模板、实例)
vue入门 0 小demo (挂载点.模板) 用直接的引用vue.js 首先 讲几个基本的概念 1.挂载点即el:vue 实例化时 元素挂靠的地方. 2.模板 即template:vue 实例化时挂 ...
- wxPython中文教程入门实例
这篇文章主要为大家分享下python编程中有关wxPython的中文教程,分享一些wxPython入门实例,有需要的朋友参考下 wxPython中文教程入门实例 wx.Window 是一个基类 ...
- Omnet++ 4.0 入门实例教程
http://blog.sina.com.cn/s/blog_8a2bb17d01018npf.html 在网上找到的一个讲解omnet++的实例, 是4.0下面实现的. 我在4.2上试了试,可以用. ...
- SpringBoot系列: RestTemplate 快速入门
====================================相关的文章====================================SpringBoot系列: 与Spring R ...
- 【React】入门实例
React 可以灵活的应用在各种各样的项目中.你可以用它来创建新的应用程序,你也可以逐步引用而不改变现有的代码库. React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaS ...
- React 入门实例
React 入门实例教程 一.安装 React 的安装包,可以到官网下载. $ git clone git@github.com:ruanyf/react-demos.git 如果你没安装 git, ...
随机推荐
- vue学习(二) 三个指令v-cloak v-text v-html
//style <style> [v-cloak]{ display:none } </style> //html <div id="app"> ...
- Linux上搭建文件浏览的web服务(创建软件仓库)(一)
软件仓库的创建方式有很多,这是一种很简单的创建方式: python -m SimpleHTTPServer 快速搭建一个http服务,提供一个文件浏览的web服务. 使用:Python SimpleH ...
- 前端学习(八):CSS
进击のpython ***** 前端学习--CSS 现在的互联网前端分为三层: HTML:超文本标记语言.从语义的角度描述页面结构 CSS:层叠样式表.从审美的角度负责页面样式 JS:Javascri ...
- c产生随机数(含时间种子)
有时候我们需要程序产生一个随机数. 可以用rand() 但是其实这个随机数是伪随机数,它是一个周期很长的一个值而已. 所以我们可以加入一个随机数种子srand(),这个可以取以当前时间为基准的一个值. ...
- oracle SCN推进恢复数据库 简单记录
由于是在内网专用机器上操作,没有日志记录,下面做个简单记录: 前几天某供电局的的一个老数据库存储挂了,数据全部丢失,该库没有开归档,没接备份,怎么恢复? 由于存储损坏严重,从存储恢复不好搞. 好在 ...
- 移动端宽高适配JS
//定义全局变量 var winWidth = 0; /*窗口宽度*/ var winHeight = 0; /*窗口高度*/ //函数区 //实时获取浏览器窗口大小,当窗口大小变化开始相应操作 fu ...
- 环境篇:DolphinScheduler-1.3.1安装部署及使用技巧
环境篇:DolphinScheduler-1.3.1安装部署 1 配置jdk JDK百度网盘:https://pan.baidu.com/s/1og3mfefJrwl1QGZGZDZ8Sw 提取码:t ...
- PHP 循环 - For 循环基础讲解
PHP 循环 - For 循环 循环执行代码块指定的次数,或者当指定的条件为真时循环执行代码块. for 循环 for 循环用于您预先知道脚本需要运行的次数的情况. 语法 for (初始值; 条件; ...
- PHP array_udiff_uassoc() 函数
实例 比较两个数组的键名和键值(使用用户自定义函数进行比较),并返回差集: <?phpfunction myfunction_key($a,$b){if ($a===$b){return 0;} ...
- Python time strftime()方法
描述 Python time strftime() 函数接收以时间元组,并返回以可读字符串表示的当地时间,格式由参数format决定.高佣联盟 www.cgewang.com 语法 strftime( ...