之前的项目一直在用Mybatis,不过因为sql都比较复杂,所Mybatis实现起来很方便。但一些简单的增删改查却也要写sql就比较麻烦了,毕竟代码的话能少写一点是一点。于是开始打算用JPA来做一些简单的小服务。
一. yml文件配置
项目就直接用STS建了,导包也直接在建项目时勾选就行。
如果只是单独的数据源的话直接配置yml使用Spring Boot的datasource配置方式就行。(其中自带有四种连接池)
不过我写的demo使用的是阿里的druid,所以可根据使用的连接池更换不同的写法。下面贴上我application.yml文件的配置。
server:
port: 8888
spring:
application:
name: lcy-many-datesource
datasource:
initialSize: 5
minIdle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
# poolPreparedStatements: Oracle为true,MySql可为false
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
filters: stat,log4j
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
testdb:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://132.97.61.65:3306/test?useUnicode=true&characterEncoding=utf-8
username: itsm
password: whtisson
demodb:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://132.97.61.65:3306/demo?useUnicode=true&characterEncoding=utf-8
username: itsm
password: whtisson
jpa:
show-sql: true
hibernate:
ddl-auto: update
这里我把连接数配置、连接健康状况检查配置都写成了公共部分,而testdb和demodb两个数据库配置单独分开写。因为这里懒得建表了所以直接把ddl - auto设置为update让它自己建表。
二. 类配置
因为Spring Boot不使用xml文件进行配置,所以使用类来完成entity类、repository接口等相关的配置。而JPA的主要获取:DataSource、EntityManagerFactory和PlatformTransactionManager,具体配置如下。