SpringBoot整合SpringData JPA之HelloWorld

文章目录

    • 1、SpringData概述
    • 2、SpringData JPA概述
    • 3、环境搭建
    • 4、测试


1、SpringData概述

Spring Data的任务是为数据访问提供一个熟悉且一致的,基于Spring的编程模型,同时仍保留基础数据存储的特​​殊特征。

它使使用数据访问技术,关系和非关系数据库,map-reduce框架以及基于云的数据服务变得容易。这是一个总括项目,其中包含许多特定于给定数据库的子项目。这些项目是与这些令人兴奋的技术背后的许多公司和开发人员共同开发的。

特征

  • 强大的存储库和自定义对象映射抽象

  • 从存储库方法名称动态查询

  • 提供基本属性的实现域基类

  • 支持透明审核(创建,最后更改)

  • 集成自定义存储库代码的可能性

  • 通过JavaConfig和自定义XML名称空间轻松进行Spring集成

  • 与Spring MVC控制器的高级集成

  • 实验性支持跨商店持久性

SpringBoot整合SpringData JPA之HelloWorld_第1张图片


2、SpringData JPA概述

Spring Data JPA是较大的Spring Data系列的一部分,可轻松实现基于JPA的存储库。该模块处理对基于JPA的数据访问层的增强支持。它使构建使用数据访问技术的Spring支持的应用程序变得更加容易。

实现应用程序的数据访问层已经很长一段时间了。为了执行简单查询以及执行分页和审核,必须编写太多样板代码。Spring Data JPA旨在通过将工作量减少到实际需要的数量来显着改善数据访问层的实现。作为开发人员,您将编写包括自定义finder方法在内的存储库接口,Spring会自动提供实现。

特征

  • 基于Spring和JPA构建存储库的先进支持

  • 支持Querydsl谓词,从而支持类型安全的JPA查询

  • 域类的透明审核

  • 分页支持,动态查询执行,集成自定义数据访问代码的能力

  • @Query引导时验证带注释的查询

  • 支持基于XML的实体映射

  • 通过引入基于JavaConfig的存储库配置@EnableJpaRepositories。


3、环境搭建

1、建立数据库
SpringBoot整合SpringData JPA之HelloWorld_第2张图片
2、建立SpringBoot项目

依赖

<dependencies>
     <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-data-jpa</artifactId>
     </dependency>
     <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-jdbc</artifactId>
     </dependency>
     <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-web</artifactId>
     </dependency>

     <dependency>
         <groupId>mysql</groupId>
         <artifactId>mysql-connector-java</artifactId>
         <scope>runtime</scope>
     </dependency>
     <dependency>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-test</artifactId>
         <scope>test</scope>
         <exclusions>
             <exclusion>
                 <groupId>org.junit.vintage</groupId>
                 <artifactId>junit-vintage-engine</artifactId>
             </exclusion>
         </exclusions>
     </dependency>
 </dependencies>

创建实体类

ORM映射元数据
JPA支持XML和JDK5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中;

//使用JPA注解配置映射关系
@Entity(name = "tbl_user")  //告诉JPA这是一个实体类(和数据表映射的类)name来指定和哪个表对应
@JsonIgnoreProperties(value = {"hibernateLazyInitializer","handler"})
public class User {

    @Id  //声明为主键
    @GeneratedValue(strategy = GenerationType.IDENTITY) //设置为自增主键
    private Integer id;

    @Column
    private String name;

    @Column //省略默认列名就是属性名
    private String email;
    
	//省略getter和setter方法
}

编写Dao接口操作实体类对应的数据表(Repositroy)

SpringBoot整合SpringData JPA之HelloWorld_第3张图片
SpringBoot整合SpringData JPA之HelloWorld_第4张图片

//继承JpaRepository来完成对数据库的操作
public interface UserRepository extends JpaRepository<User,Integer> {
}

配置yml文件

在这里插入代码片
spring:
  datasource:
    username: root  #数据库账号
    password: root  #数据库密码
    driver-class-name: com.mysql.cj.jdbc.Driver #驱动
    url: jdbc:mysql://localhost:3306/jpa?serverTimezone=Asia/Shanghai&useSSL=true
  jpa:
    hibernate:
      #更新或者创建数据表结构,如果启动时没表就会自动创建
      ddl-auto: update
    #控制台打印SQL
    show-sql: true

编写Controller

@RestController
public class UserController {

    @Autowired
    UserRepository userRepository;

    @GetMapping("/user/{id}")
    public User getUser(@PathVariable("id") Integer id) {
        User one = userRepository.getOne(id);
        return one;
    }

    @GetMapping("/user")
    public User insertUser(User user){
        User save = userRepository.save(user);
        return save;
    }
}

4、测试

启动成功后可发现数据库中创建了一张表

SpringBoot整合SpringData JPA之HelloWorld_第5张图片
此时数据库没有数据,我们查询1号数据
SpringBoot整合SpringData JPA之HelloWorld_第6张图片
控制台打印了查询SQL
在这里插入图片描述
插入数据成功
SpringBoot整合SpringData JPA之HelloWorld_第7张图片
再次查询,成功查出来
SpringBoot整合SpringData JPA之HelloWorld_第8张图片


博主会持续更新,有兴趣的小伙伴可以点赞、关注和收藏下哦,你们的支持就是我创作最大的动力!

Java学习路线目录索引

在这里插入图片描述

你可能感兴趣的:(SpringBoot,spring,boot,SpringData,JPA,java,数据库)