SpringBoot+MyBatis

简述

mysql是应用很广泛的数据库,MyBatis框架操作mysql是很常用手段,故此处简单介绍一下基础搭建

pom.xml核心依赖

pom.xml的SpringBoot+MyBatis一些依赖

    <dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.3.5.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>2.3.5.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.16</version>
        </dependency>

<!--       该依赖,集成了swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.2</version>
        </dependency>

<!--      方便一些编码操作,可以不加 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.20</version>
        </dependency>

    </dependencies>

启动小技巧

有时候,可能功能比较简单,需要应用启动,但是不自动加载mysql,可以在注解@SpringBootApplication排除掉Mysql的启动类,写法如下

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
public class MybatisApplication {
    public static void main(String[] args) {
        SpringApplication.run(MybatisApplication.class, args);
    }
}

需要注意的是,注解SpringBootApplication和EnableAutoConfiguration同时存在,则排除类放在EnableAutoConfiguration,或者删除EnableAutoConfiguration注解也行

@SpringBootApplication
@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})

yml添加连接地址

spring:
  datasource:
    url: jdbc:mysql://10.9.66.37:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    username: admin
    password: admin
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.zaxxer.hikari.HikariDataSource
    hikari:
      connection-test-query: SELECT 1
      connection-init-sql: SELECT 1
      idle-timeout: 600000
      maximum-pool-size: 10
      minimum-idle: 10

需要注意的地方是时区,serverTimezone=Asia/Shanghai,由于大部分是在国内,所以时区选在了上海,若是有国际化需求,应设置为serverTimezone=UTC

新电脑拉取代码

可能会启动报错如下:

Description:

Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine a suitable driver class

Action:

Consider the following:
If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).

把项目下的resources设置为源 根,即不设置前,IDEA对该文件显示普通文件夹,而设置后,则显示蓝色图标