springboot + mybatisPlus 搭建项目实例demo
程序员文章站
2022-06-28 17:26:57
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,只需要修改相应的配置即可...
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 + mybatisPlus3.3.2 + mysql8.0 进行搭建,如果使用mysql5.x,只需要修改相关配置即可。
如果本实例对你有帮助,欢迎留言评论,欢迎 git clone源代码。
本文地址:https://blog.csdn.net/Jelly_oy/article/details/108032629
推荐阅读
-
SpringBoot (1) idea下的环境搭建及demo
-
基于【 springBoot +springCloud+vue】的项目之一 || 后端搭建
-
eclipse搭建springboot的项目
-
Spring项目整合成SpringBoot的简单登录拦截Demo
-
SpringBoot技术栈搭建个人博客【项目准备】
-
idea使用spring Initializr 快速搭建springboot项目遇到的坑
-
如何利用IDEA搭建SpringBoot项目整合mybatis实现简单的登录功能
-
springboot+idea+maven 多模块项目搭建的详细过程(连接数据库进行测试)
-
【SpringBoot】多模块项目结构搭建
-
搭建springboot+mybatis+freemarker项目