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, ...
随机推荐
- tomcat8开启APR模式
1 Apr模式介绍 Tomcat可以使用APR来提供超强的可伸缩性和性能,更好地集成本地服务器技术.APR(Apache Portable Runtime)是一个高可移植库,它是Apache HTTP ...
- laravel开发调试工具laravel-debugbar的安装
一.使用 Composer 安装该扩展包 composer require barryvdh/laravel-debugbar --dev 二.(可选)修改配置文件app/config.php Lar ...
- table标签用法
<table>标签 HTML中表格由 <table> 标签来定义. 每个表格均有若干行(由 <tr> 标签定义),每行被分割为若干单元格(由 <td> ...
- 没有学历如何从事Java开发?
学历成了当今社会一个衡量一个人能力的标准,未来只会越来越深入,也有的人说不要总是把学历挂嘴边,学历并不能代表能力,确实学历不能代表能力,但是学历是能代表一个的人学习深度,也是在职场上必备的一个敲门砖. ...
- Python os.dup() 方法
概述 os.dup() 方法用于复制文件描述符 fd.高佣联盟 www.cgewang.com 语法 dup()方法语法格式如下: os.dup(fd); 参数 fd -- 文件描述符 返回值 返回复 ...
- P3239 [HNOI2015]亚瑟王 期望 dp
LINK:亚瑟王 Saber!Excalibur! 比较难的期望dp. 可以发现如果暴力枚举所有的局面复杂度很高 . 转换的思路则是 期望的线性性. 求出每张牌的期望累加即可. 考虑每张牌的期望=这张 ...
- Springboot拦截器使用及其底层源码剖析
博主最近看了一下公司刚刚开发的微服务,准备入手从基本的过滤器以及拦截器开始剖析,以及在帮同学们分析一下上次的jetty过滤器源码与本次Springboot中tomcat中过滤器的区别.正题开始,拦截器 ...
- [转]Maven类包冲突终极三大解决技巧
举例 A依赖于B及C,而B又依赖于X.Y,而C依赖于X.M,则A除引B及C的依赖包下,还会引入X,Y,M的依赖包(一般情况下了,Maven可通过<scope>等若干种方式控制传递依赖).这 ...
- thread-01
// 8:15 AM/09/28/2017 #pragma once #include <iostream> // std::cout #include <thread> // ...
- TF签名是什么?比企业签名好在哪里?
现在苹果企业签名的服务大致分为三类,苹果企业签名.超级签名和TF签名,而TF签名TF签名又称 TestFlight 签名,是目前最稳定的签名方式. 「优势」 关键词:零风险;限制少;安 ...