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的更多相关文章

  1. springboot + kafka 入门实例 入门demo

    springboot + kafka 入门实例 入门demo 版本说明 springboot版本:2.3.3.RELEASE kakfa服务端版本:kafka_2.12-2.6.0.tgz zooke ...

  2. spring-boot+mybatisPlus+shiro的集成demo 我用了5天

    spring-boot + mybatis-plus + shiro 的集成demo我用了五天 关于shiro框架,我还是从飞机哪里听来的,就连小贱都知道,可我母鸡啊.简单百度了下,结论很好上手,比s ...

  3. 基于springboot构建dubbo的入门demo

    之前记录了构建dubbo入门demo所需的环境以及基于普通maven项目构建dubbo的入门案例,今天记录在这些的基础上基于springboot来构建dubbo的入门demo:众所周知,springb ...

  4. vue入门 0 小demo (挂载点、模板、实例)

    vue入门 0 小demo  (挂载点.模板) 用直接的引用vue.js 首先 讲几个基本的概念 1.挂载点即el:vue 实例化时 元素挂靠的地方. 2.模板 即template:vue 实例化时挂 ...

  5. wxPython中文教程入门实例

    这篇文章主要为大家分享下python编程中有关wxPython的中文教程,分享一些wxPython入门实例,有需要的朋友参考下     wxPython中文教程入门实例 wx.Window 是一个基类 ...

  6. Omnet++ 4.0 入门实例教程

    http://blog.sina.com.cn/s/blog_8a2bb17d01018npf.html 在网上找到的一个讲解omnet++的实例, 是4.0下面实现的. 我在4.2上试了试,可以用. ...

  7. SpringBoot系列: RestTemplate 快速入门

    ====================================相关的文章====================================SpringBoot系列: 与Spring R ...

  8. 【React】入门实例

    React 可以灵活的应用在各种各样的项目中.你可以用它来创建新的应用程序,你也可以逐步引用而不改变现有的代码库. React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaS ...

  9. React 入门实例

    React 入门实例教程 一.安装 React 的安装包,可以到官网下载. $ git clone git@github.com:ruanyf/react-demos.git 如果你没安装 git, ...

随机推荐

  1. HBase面试考点

    HBase 架构图 组成部分及作用 Zookeeper在HBase中作用 Master的高可用 RegionServer的监控 元数据的入口 HMaster 不仅有维护集群元数据信息的功能,还能 通过 ...

  2. JavaScript基础内容

    javascript:是个脚本语言,需要有宿主文件,他的宿主文件是html文件.用来交互的 Javascript基础  写法分类: 1.内联(行内):写在标签里面,以事件属性表现 属性名就是事件属性名 ...

  3. 虚拟机 NAT 网络静态ip配置记录

    环境 VMware 15.5.5 build-16285975 centos7 虚拟网络编辑器配置 位置 编辑 --> 虚拟网络编辑器 示例 以下以 192.168.18.0 网段ip为例,实际 ...

  4. django 命令行命令

    django-admin startproject 项目名 django-admin startproject python manage.py makemigrations python manag ...

  5. Flutter中的绘图(Canvas&CustomPaint)API

    本文是Flutter中Canvas和CustomPaint API的使用实例. 首先看一下我们要实现的效果: 结合动图演示,列出最终目标如下: 在程序运行后,显示一个小球: 每次程序启动后,小球的样式 ...

  6. 11-19 hashlib模块

    Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等. 什么是摘要算法呢? 摘要算法又称哈希算法.散列算法.它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进 ...

  7. JavaScript正则表达式相关方法

    一.正则表达式方法 var str="abcdefabcdef"; (1)reg.test(str); 查看字符串是否有满足正则表达式的内容,并返回一个布尔值true/false ...

  8. CF724C Ray Tracing 扩展欧几里得 平面展开

    LINK:Ray Tracing 虚这道题很久了 模拟赛考了一个加强版的 瞬间就想到了这道简化版的. 考虑做法 暴力模拟可能可以 官方正解好像就是这个. 不过遇到这种平面问题可以考虑把平面给无限的展开 ...

  9. 不用注入方式使用Spring管理的对象中的方法,神奇

    在小冷工作中遇到这么一个小问题,当你的业务层对象交给spring管理之后,在普通的类中调用这个类中的方法时候,会有个问题这个类在调用时候会一直返回一个null,而且还会抛出一个空指针异常. 小冷在遇到 ...

  10. 《分享》Koa2源码分析

    曾经在公司内部做的一起关于koa源码的分享,希望对你有帮助: koa2 源码分析整理 koa2(2.4.1版本)源码主要包含四个js,包括application.js, context.js, req ...