配置方式
pom依赖
org.springframework。启动
spring-boot-starter-aop
应用程序。xml配置
#jpa配置
spring.jpa.properties.hibernate.hbm2ddl.auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.show-sql=true
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
需要注意的是最后一行,用来定义命名策略,如果不设置,会使用默认的命名策略,比如建表时,会将有驼峰命名的转换为全小写,并用横线分割如:实体类名:userCommon,映射到表名就是user-common
使用方式
使用jpa有两种方式,一种是使用注解,另外一种是使用配置文件,这两种都可以实现,但是推荐使用注解,因为这种方式更加的简洁,且是主流趋势,下面主要介绍注解的方式。
在需要映射的实体类添加如下注解
@Entity :表明该类是一个实体类,添加了该注解后,才能被jpa扫描到
@Table:可以自定义表名
我们需要知道的是,上面两行注解就已经完成了jpa的映射,声明为实体类后,该类里面的属性默认都会进行映射到数据库,但是默认的往往是不符合我们的要求的,比如,命名、长度、主键、索引都是需要自己指定的,因此下面介绍一些常用的注解
扩展注解
在属性添加注解
主键:
@Id:一般用来声明主键
@GeneratedValue(strategy=GenerationType.IDENTITY):设置主键为自增
普通属性:
@column:可以自定义列名或者定义其他的数据类型
比如@column(name=癱ontent”, columnDefinition=發ongtext”)
@Transient:不进行数据库的映射,类似于排除
页面直接得到格式化类型的值,主要针对日期类型
@Temporal(TemporalType.DATE):如1994-05-06
@Temporal(TemporalType.TIME):20:46:13
@Temporal(TemporalType.TIMESTAMP):1994-05-06 20:46:13
唯一索引
@Table(name=氨砻? uniqueConstraints={
@UniqueConstraint(name=八饕啤? columnNames={“字段1”,“字段2”})
}),
表加index索引
@Table(name=氨砻?indexes={
@Index(name=八饕啤? columnList=白侄蚊?
})
数据库初始化
对数据库的初始化往往也是经常用到的,我们创建的数据库一般都需要一些初始化的数据,配置方式如下
增加application.属性配置文件属性
spring.datasource.data=https://www.yisu.com/zixun/classpath数据库/data.sql
spring.datasource。sql-script-encoding utf - 8=
spring.datasource。initialization-mode=总是
创建数据。sql文件,在项目启动的时候就会执行该sql文件,如果项目的数据已经被初始化,那么可以将最后一行的属性总是改为从未