【Spring Boot】 使用Mybatis-Plus连接Mysql数据库

1、创建spring boot项目

2、pom.xml中添加依赖

首先添加mybatisplus,已经引用了mybatisplus,就不要引用mybatis了,否则可能会有问题

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.2.0</version>
</dependency>

添加mysql jdbc驱动依赖

 <!--Mysql jdbc驱动-->
 <dependency>
       <groupId>mysql</groupId>
       <artifactId>mysql-connector-java</artifactId>
       <version>8.0.17</version>
 </dependency>

Swagger依赖

<!--swagger-ui-->
<dependency>
     <groupId>io.springfox</groupId>
     <artifactId>springfox-swagger-ui</artifactId>
     <version>2.4.0</version>
</dependency>
<!--swagger-ui-->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.4.0</version>
</dependency>

springboot web依赖,RestController、RequestMapping等标签的时候会用到

  <!--springboot web模块-->
  <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
  </dependency>

3、创建数据库

4、修改application.properties配置文件

  application.properties类型的文件一定不能用yml的语法格式

#设置提供的服务名
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mpdemo?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.max-idle=10
spring.datasource.max-wait=10000
spring.datasource.min-idle=5
spring.datasource.initial-size=5

#mybatis plus

#指明mapper.xml扫描位置(classpath* 代表编译后类文件根目录)
mybatis-plus.mapper-locations=classpath*:xml/*.xml
#指明实体扫描(多个package用逗号或者分号分隔)
mybatis-plus.type-aliases-package=com.example.mybatisplus01.entity;

#主键类型 0:数据库ID自增, 1:用户输入ID,2:全局唯一ID (数字类型唯一ID), 3:全局唯一ID UUID
mybatis-plus.global-config.id-type: 0
#字段策略(拼接sql时用于判断属性值是否拼接) 0:忽略判断,1:非NULL判断,2:非空判断
mybatis-plus.global-config.field-strategy: 2
#驼峰下划线转换含查询column及返回column(column下划线命名create_time,返回java实体是驼峰命名createTime,开启后自动转换否则保留原样)
mybatis-plus.global-config.db-column-underline: true
#是否动态刷新mapper
mybatis-plus.global-config.refresh-mapper: false
#数据库大写命名下划线转换
#capital-mode: true

5、创建Entity、Mapper、Service、Swagger、XML、Controller

userInfo

package com.example.mybatisplus02.entity;

import lombok.Data;

@Data
public class UserInfo {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}

UserInfoMapper

package com.example.mybatisplus02.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.mybatisplus02.entity.UserInfo;
import org.springframework.stereotype.Repository;

@Repository
public  interface  UserInfoMapper extends BaseMapper<UserInfo>{
    //自定义方法
    Integer listCount();
}

IUserInfoService

package com.example.mybatisplus02.service;

public interface IUserInfoService {
    Integer listCount();

}

UserInfoService

package com.example.mybatisplus02.service.Impl;

import com.example.mybatisplus02.mapper.UserInfoMapper;
import com.example.mybatisplus02.service.IUserInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserInfoService implements IUserInfoService {

    @Autowired(required = false)
    private UserInfoMapper userInfoMapper;


    public Integer listCount() {
        Integer count = userInfoMapper.listCount();
        return count;
    }
}

Swagger

package com.example.mybatisplus02.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.request.async.DeferredResult;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import static com.google.common.collect.Lists.newArrayList;

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket swaggerApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .globalOperationParameters(newArrayList(

                        new ParameterBuilder()
                                .name("pageNumber")
                                .description("pageNumber")
                                .modelRef(new ModelRef("int"))
                                .parameterType("header")
                                .required(false)
                                .build(),

                        new ParameterBuilder()
                                .name("pageSize")
                                .description("pageSize")
                                .modelRef(new ModelRef("int"))
                                .parameterType("header")
                                .required(false)
                                .build(),

                        new ParameterBuilder()
                                .name("orders")
                                .description("orders")
                                .modelRef(new ModelRef("string"))
                                .parameterType("header")
                                .required(false)
                                .build(),

                        new ParameterBuilder()
                                .name("isAsc")
                                .description("true: ASC, false: DESC")
                                .modelRef(new ModelRef("string"))
                                .parameterType("header")
                                .required(false)
                                .build(),

                        new ParameterBuilder()
                                .name("language")
                                .description("language")
                                .modelRef(new ModelRef("string"))
                                .parameterType("header")
                                .required(false)
                                .build(),

                        new ParameterBuilder()
                                .name("token")
                                .description("passport token")
                                .modelRef(new ModelRef("string"))
                                .parameterType("header")
                                .required(false)
                                .build()

                ))
                .groupName("plm")
                .genericModelSubstitutes(DeferredResult.class)
                .useDefaultResponseMessages(false)
                .forCodeGeneration(false)
                .pathMapping("/")
                .select()
                .build()
                .apiInfo(myApiInfo());
    }



    private ApiInfo myApiInfo() {
        ApiInfo apiInfo = new ApiInfo("Harmontronics-plm 接口",//大标题
                "",//小标题
                "1.0",//版本
                "",
                "",//作者
                "",//链接显示文字
                ""//网站链接
        );
        return apiInfo;
    }
}

XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.mybatisplus02.mapper.UserInfoMapper">
    <select id="listCount" resultType="java.lang.Integer">
      select count(*) from user_info;
    </select>
</mapper>

Controller

package com.example.mybatisplus02.api;

import com.example.mybatisplus02.service.IUserInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@Api(value = "测试接口", tags = "测试接口")
@RestController
@RequestMapping("/api/test")
public class UserApi {


    @Autowired
    private IUserInfoService iUserInfoService;


    /**
     * 测试
     *
     * @return
     */
    @ApiOperation(value = "测试查", notes = "getCount")
    @PostMapping("/getCount")
    public Integer getCount() {
        return iUserInfoService.listCount();
    }
}

最后的项目结构

6、在Application启动类上添加扫描mapper的标签

@MapperScan("com.example.mybatisplus02.mapper")//标记扫描的mapper位置

7 运行测试

http://localhost:8001/swagger-ui.html#/

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
连接数据库需要进行以下步骤: 1. 在pom.xml文件中添加MyBatis-Plus数据库驱动的依赖,例如: ```xml <dependencies> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.23</version> </dependency> </dependencies> ``` 2. 在application.properties或application.yml文件中配置数据库连接信息,例如: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/test?useSSL=false&serverTimezone=Asia/Shanghai&characterEncoding=utf-8 spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` 3. 在Spring Boot主类上添加`@MapperScan`注解,指定MyBatis-Plus的mapper接口所在的包,例如: ```java @SpringBootApplication @MapperScan("com.example.mapper") public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 4. 创建实体类和Mapper接口。实体类需要使用`@TableName`注解指定对应的数据库表名,Mapper接口需要继承`BaseMapper`,例如: ```java @TableName("user") public class User { @TableId(type = IdType.AUTO) private Long id; private String name; private Integer age; // getter、setter方法省略 } public interface UserMapper extends BaseMapper<User> { } ``` 至此,Spring BootMyBatis-Plus就已经成功连接数据库了。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值