SpringDataJPA使用
项目搭建完成后,就需要连接数据库,并对数据库进行一系列的CRUD的操作,数据库有很多种,具体业务具体选型,有关系型,非关系型,主流,非主流等等,这里使用最为常用的Mysql数据库。结合SpringDataJPA完成对数据库的增删改查。JPA是什么,有何优势及使用方法,请自行度之。
CRUD(Create,Read,Update,Delete):
步骤:
(一)在项目pom.xml文件中添加spring-data-jpa、mysql-connector-java的依赖,如图:
(二)配置数据源和JPA
鉴于.yml格式的配置文件层次结构更清晰一些,之后使用.yml格式的,在recourses目录下创建application.yml
特别说明:在yml文件中添加value值时,value前面需要加一个空格;并且可以在配置中使用当前配置,用${}取key;也可以随时切换多个配置文件使用。
如图是yml配置文件的配置格式,创建了一个数据库,并且JPA的配置了show-sql用来在控制台输出JPA自动生成的sql语句。
特别说明:Spring data jpa基于Hibernate5.0的,表字段命名和数据库字段命名策略
无修改命名:
spring:
jpa:
hibernate:
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
遇到大写字母 加”_”的命名:
spring:
jpa:
hibernate:
naming:
physical-strategy: org.hibernate.boot.model.naming.SpringPhysicalNamingStrategy
(三)创建controller
(四)创建entiy
右键点击Generate,选中GetAndSet,然后选中字段,可以自动添加Get和Set方法
(五)创建dao层(数据持久化层)使用SpringDataJPA进行数据库操作,创建UserDao接口,并继承SpringDataJPA内的接口作为父类
JpaRepository接口(SpringDataJPA提供的简单数据操作接口)、JpaSpecificationExecutor(SpringDataJPA提供的复杂查询接口)、Serializable(序列化接口)。
SpringDataJPA内部使用了类代理的方式让继承了它接口的子接口都以spring管理的Bean的形式存在,也就是说我们可以直接使用@Autowired注解在spring管理bean使用。
查询方法:
jpa自带的实现方法,查询所有。
新增和修改方法:
入参主键存在则修改,不存在则新增。
删除方法:
具体测试使用方法,不再赘述。