当前位置: 移动技术网 > IT编程>开发语言>Java > springboot + mybatisPlus 搭建项目实例demo

springboot + mybatisPlus 搭建项目实例demo

2020年08月17日  | 移动技术网IT编程  | 我要评论
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://www.lhsxpumps.com/_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

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网