DB
MySQL
dependency
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<!--包含任意包下的任意名字的xml文件-->
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<!--将原本的资源目录引入-->
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
config
spring.datasource.url=jdbc:mysql://localhost:3306/database_name?setUnicode=true&characterEncoding=UTF-8&autoReconnect=true&allowMultiQueries=true&serverTimezone=GMT%2B8
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=123456
H2
dependency
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
config
url的设置决定了该数据库的属性
格式:jdbc:h2:
- 模式选择
- 内存: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
spring.datasource.url=jdbc:h2:mem:jpa
# 开启web client
spring.h2.console.enabled=true
spring.h2.console.settings.trace=true
spring.h2.console.settings.web-allow-others=true
spring.h2.console.path=/h2-console
- jdbc:h2:mem:test_db;MODE=MySQL;DATABASE_TO_LOWER=TRUE
framework
mybatis
dependency
<dependencies>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
</dependencies>
<build>
<resources>
<!--默认情况下,spring不扫描java目录下的xml文件,所以如果要在java目录添加xml文件,需要额外添加此配置-->
<resource>
<directory>src/main/java</directory>
<includes>
<!--包含任意包下的任意名字的xml文件-->
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<!--将原本的资源目录引入-->
<directory>src/main/resources</directory>
</resource>
</resources>
</build>
config
mybatis.mapper-locations=classpath:/mapper/*.xml
@Configuration
@MapperScan(basePackages = "com.jac.mapper")
public class MybatisConfigure {
}
mybatis-plus
dependency
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.3.1</version>
</dependency>
config
- mybatis-plus不需要额外配置mapper-locations
@Configuration
@MapperScan(basePackages = "com.jac.mapper")
public class MybatisConfigure {
}
JPA
dependency
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
config
# 自动建表,如有需要,更新表结构;只会新增字段,不会删除字段
spring.jpa.hibernate.ddl-auto=update
# 打印sql日志
spring.jpa.show-sql=true
Pool
HikariCP
SpringBoot 2.x默认使用的连接池(1.x使用的是tomcat.jdbc.pool.DataSource
)dependency
SpringBoot 2.x无需配置<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
</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
<a name="SR4bu"></a>
## Druid
<a name="WMjBc"></a>
### dependency
```xml
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.16</version>
</dependency>
<!--或者-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
config
# 如果使用starter,则不需要该配置
spring.datasource.type=spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
# 其他配置
spring.datasource.druid.initial-size=
spring.datasource.druid.max-active=
spring.datasource.druid.min-idle=
spring.datasource.druid.max-wait=