DB

MySQL

dependency

  1. <dependencies>
  2. <dependency>
  3. <groupId>mysql</groupId>
  4. <artifactId>mysql-connector-java</artifactId>
  5. </dependency>
  6. </dependencies>
  7. <build>
  8. <resources>
  9. <resource>
  10. <directory>src/main/java</directory>
  11. <includes>
  12. <!--包含任意包下的任意名字的xml文件-->
  13. <include>**/*.xml</include>
  14. </includes>
  15. </resource>
  16. <resource>
  17. <!--将原本的资源目录引入-->
  18. <directory>src/main/resources</directory>
  19. </resource>
  20. </resources>
  21. </build>

config

  1. spring.datasource.url=jdbc:mysql://localhost:3306/database_name?setUnicode=true&characterEncoding=UTF-8&autoReconnect=true&allowMultiQueries=true&serverTimezone=GMT%2B8
  2. spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  3. spring.datasource.username=root
  4. spring.datasource.password=123456

H2

h2是一个非常方便的嵌入式数据库

dependency

  1. <dependency>
  2. <groupId>com.h2database</groupId>
  3. <artifactId>h2</artifactId>
  4. </dependency>

config

url的设置决定了该数据库的属性
格式:jdbc:h2::;MODE=<? COMPATIBILITY_TYPE>;USER=

  • 模式选择
    • 内存:jdbc:h2:mem:test_db
    • 嵌入:jdbc:h2:file:E:/IdeaProjects/mybatis/db/test_db
  • 语法兼容性选择
    • MYSQL:jdbc:h2:mem:test_db;MODE=MySQL
    • ORACLE:jdbc:h2:mem:test_db;MODE=ORACLE
    • PostgreSQL:jdbc:h2:mem:test_db;MODE=PostgreSQL
  • DATABASE_TO_LOWER:默认情况下,表是大写的,使用该参数是得表名变成小写
    • jdbc:h2:mem:test_db;MODE=MySQL;DATABASE_TO_LOWER=TRUE
      1. spring.datasource.url=jdbc:h2:mem:jpa
      2. # 开启web client
      3. spring.h2.console.enabled=true
      4. spring.h2.console.settings.trace=true
      5. spring.h2.console.settings.web-allow-others=true
      6. spring.h2.console.path=/h2-console

framework

mybatis

dependency

  1. <dependencies>
  2. <dependency>
  3. <groupId>org.mybatis.spring.boot</groupId>
  4. <artifactId>mybatis-spring-boot-starter</artifactId>
  5. <version>2.2.0</version>
  6. </dependency>
  7. </dependencies>
  8. <build>
  9. <resources>
  10. <!--默认情况下,spring不扫描java目录下的xml文件,所以如果要在java目录添加xml文件,需要额外添加此配置-->
  11. <resource>
  12. <directory>src/main/java</directory>
  13. <includes>
  14. <!--包含任意包下的任意名字的xml文件-->
  15. <include>**/*.xml</include>
  16. </includes>
  17. </resource>
  18. <resource>
  19. <!--将原本的资源目录引入-->
  20. <directory>src/main/resources</directory>
  21. </resource>
  22. </resources>
  23. </build>

config

  1. mybatis.mapper-locations=classpath:/mapper/*.xml
  1. @Configuration
  2. @MapperScan(basePackages = "com.jac.mapper")
  3. public class MybatisConfigure {
  4. }

mybatis-plus

dependency

  1. <dependency>
  2. <groupId>com.baomidou</groupId>
  3. <artifactId>mybatis-plus-boot-starter</artifactId>
  4. <version>3.4.3.1</version>
  5. </dependency>

config

  • mybatis-plus不需要额外配置mapper-locations
    1. @Configuration
    2. @MapperScan(basePackages = "com.jac.mapper")
    3. public class MybatisConfigure {
    4. }

    JPA

    dependency

    1. <dependency>
    2. <groupId>org.springframework.boot</groupId>
    3. <artifactId>spring-boot-starter-data-jpa</artifactId>
    4. </dependency>

    config

    1. # 自动建表,如有需要,更新表结构;只会新增字段,不会删除字段
    2. spring.jpa.hibernate.ddl-auto=update
    3. # 打印sql日志
    4. spring.jpa.show-sql=true

    Pool

    HikariCP

    SpringBoot 2.x默认使用的连接池(1.x使用的是tomcat.jdbc.pool.DataSource

    dependency

    SpringBoot 2.x无需配置
    1. <dependency>
    2. <groupId>com.zaxxer</groupId>
    3. <artifactId>HikariCP</artifactId>
    4. </dependency>

    config

    ```

    仅1.x需要此配置

    spring.datasource.type=com.zaxxer.hikari.HikariDataSource

其他配置

最小空闲连接,默认为10

spring.datasource.hikari.minimum-idle=10

最大连接数

spring.datasource.hikari.maximum-pool-size=20

空闲连接超时时间,默认为10分钟(单位是毫秒)

spring.datasource.hikari.idle-timeout=600000

连接最大存活时间,默认是30min,应该小于数据库设置的最大超时时间

spring.datasource.hikari.max-lifetime=18000000

  1. <a name="SR4bu"></a>
  2. ## Druid
  3. <a name="WMjBc"></a>
  4. ### dependency
  5. ```xml
  6. <dependency>
  7. <groupId>com.alibaba</groupId>
  8. <artifactId>druid</artifactId>
  9. <version>1.1.16</version>
  10. </dependency>
  11. <!--或者-->
  12. <dependency>
  13. <groupId>com.alibaba</groupId>
  14. <artifactId>druid-spring-boot-starter</artifactId>
  15. <version>1.1.10</version>
  16. </dependency>

config

  1. # 如果使用starter,则不需要该配置
  2. spring.datasource.type=spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
  3. # 其他配置
  4. spring.datasource.druid.initial-size=
  5. spring.datasource.druid.max-active=
  6. spring.datasource.druid.min-idle=
  7. spring.datasource.druid.max-wait=