阅读 159

SpringBoot整合springDataJPA

SpringBoot整合springDataJPA

  • 一.SpringBootData JPA介绍

  • 二.基本配置

    • 1.引入依赖

    • 2.配置文件

  • 三.JPA使用

    • 1.创建Entity实体类

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

    • 3.创建controller测试


一.SpringBootData JPA介绍

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

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

在这里插入图片描述

二.基本配置

1.引入依赖

我们可以直接在创建项目时,勾选上spring初始化向导
在这里插入图片描述
然后选中需要的模块
在这里插入图片描述

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;}}


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐