# spring-boot-demo-jpa
依赖 [spring-boot-demo-parent](../spring-boot-demo-parent)、`spring-boot-starter-data-jpa`、`druid-spring-boot-starter`
### pom.xml
```xml
4.0.0
spring-boot-demo-orm-jpa
0.0.1-SNAPSHOT
jar
spring-boot-demo-orm-jpa
Demo project for Spring Boot
com.xkcoding
spring-boot-demo-parent
0.0.1-SNAPSHOT
../spring-boot-demo-parent
1.1.5
org.springframework.boot
spring-boot-starter-data-jpa
com.alibaba
druid-spring-boot-starter
${druid.starter.version}
spring-boot-demo-orm-jpa
```
### application.yml
```yaml
server:
port: 8080
context-path: /demo
spring:
datasource:
continue-on-error: true
druid:
url: jdbc:mysql://localhost:3306/spring-boot-demo?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
# 连接池配置
# 初始化大小,最小,最大
initialSize: 5
minIdle: 5
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
# 打开PSCache,并且指定每个连接上PSCache的大小
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
filters: stat,wall,log4j
# 监控配置
web-stat-filter:
enabled: true
url-pattern: /*
exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
stat-view-servlet:
enabled: true
url-pattern: /sys/druid/*
reset-enable: fasle
login-username: xkcoding
login-password: 123456
filter:
stat:
log-slow-sql: true
slow-sql-millis: 5000
merge-sql: true
jpa:
hibernate:
ddl-auto: create-drop
show-sql: true
```
### JpaUser.java
```java
@Entity
@Data
@DynamicUpdate
public class JpaUser {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name")
private String name;
@Column(name = "create_time")
private Date createTime;
}
```
### JpaUserRepository.java
```java
public interface JpaUserRepository extends JpaRepository {
/**
* 自定义一个查询,HQL,根据姓名查询
*
* @param name 名称
* @return JpaUser
*/
@Query("from JpaUser u where u.name like :name")
JpaUser findJpaUser(@Param("name") String name);
JpaUser findJpaUserByName(String name);
List findJpaUsersByIdIn(List ids);
}
```
### 其余代码
详情请参见本demo。