SpringBoot整合springDataJPA


SpringBoot整合springDataJPA


一.SpringBootData JPA介绍

SpringData:其实SpringData就是Spring提供了一个操作数据的框架。而SpringData JPA只是SpringData框架下的一个基于JPA标准操作数据的模块。

SpringData JPA:基于JPA的标准数据进行操作。简化操作持久层的代码。只需要编写接口就可以

SpringBoot整合springDataJPA

二.基本配置

1.引入依赖

我们可以直接在创建项目时,勾选上spring初始化向导
SpringBoot整合springDataJPA
然后选中需要的模块
SpringBoot整合springDataJPA

2.配置文件

application.properties或者application.yml中配置进行配置

spring:
  datasource:  username: root      password: root      driver-class-name: com.mysql.jdbc.Driver      url: jdbc:mysql://localhost:3306/db3?serverTimezone=UTC      type: com.alibaba.druid.pool.DruidDataSource      #   数据源其他配置  initialSize: 5  minIdle: 5  maxActive: 20  maxWait: 60000  timeBetweenEvictionRunsMillis: 60000  minEvictableIdleTimeMillis: 300000  validationQuery: SELECT 1 FROM DUAL      testWhileIdle: true  testOnBorrow: false  testOnReturn: false  poolPreparedStatements: true

  jpa:hibernate:  ddl-auto: updateshow-sql: true

注意:

  1. 这里使用的是Druid数据源,使用时需要在pom.xml中导入相关依赖
<!-- 引入druid数据源--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.18</version></dependency>

  1. 这里由于版本问题,在url地址地方需要加上serverTimezone属性
url: jdbc:mysql://localhost:3306/db3?serverTimezone=UTC

jpa:hibernate:  ddl-auto: update//表示自动为我们在数据库中创建表(并更改)show-sql: true(在控制台打印sql语句)

三.JPA使用

1.创建Entity实体类

@Entity@Tablepublic class User {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Integer id;@Column(length = 50)private String lastName;@Columnprivate String email;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getLastName() {return lastName;}public void setLastName(String lastName) {this.lastName = lastName;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}}

注意

1.这里所有的注解都是javax.persistence下的,不要导错包了

注解的解释

  • @Entity注解:告诉JPA这是一个实体类(和数据表映射的类)也就是一一对应
  • @Table:来指定和哪个数据表对应;如果省略默认表名就是user;
  • @Id:指明该属性为主键
  • @GeneratedValue(strategy = GenerationType.IDENTITY:表名自动增长
  • @colume:这是和数据表对应的一个列,省略默认列名就是属性名

2.编写一个Dao接口来操作实体类对应的数据表(Repository)

public interface UserRepository extends JpaRepository<User,Integer> {}

这里只需要实现JpaRepository接口即可,不需要添加注解

3.创建controller测试

@RestControllerpublic class UserController {@AutowiredUserRepository userRepository;@GetMapping("/user/{id}")public User getUser(@PathVariable("id") Integer id){User user = userRepository.getOne(id);return user;}@GetMapping("/user")public User insertUser(User user){User user1 = userRepository.save(user);return user1;}}
上一篇:Spring Data JPA


下一篇:SpringBoot持久层使用JPA开发简单例子