`
234390216
  • 浏览: 10229705 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A5ee55b9-a463-3d09-9c78-0c0cf33198cd
Oracle基础
浏览量:462459
Ad26f909-6440-35a9-b4e9-9aea825bd38e
springMVC介绍
浏览量:1775243
Ce363057-ae4d-3ee1-bb46-e7b51a722a4b
Mybatis简介
浏览量:1398162
Bdeb91ad-cf8a-3fe9-942a-3710073b4000
Spring整合JMS
浏览量:394945
5cbbde67-7cd5-313c-95c2-4185389601e7
Ehcache简介
浏览量:679873
Cc1c0708-ccc2-3d20-ba47-d40e04440682
Cas简介
浏览量:530768
51592fc3-854c-34f4-9eff-cb82d993ab3a
Spring Securi...
浏览量:1183557
23e1c30e-ef8c-3702-aa3c-e83277ffca91
Spring基础知识
浏览量:467444
4af1c81c-eb9d-365f-b759-07685a32156e
Spring Aop介绍
浏览量:151267
2f926891-9e7a-3ce2-a074-3acb2aaf2584
JAXB简介
浏览量:68014
社区版块
存档分类
最新评论

Spring Boot(17)——使用Spring Data JPA

阅读更多

使用Spring Data JPA

使用Spring Data JPA需要在pom.xml中添加spring-boot-starter-data-jpa依赖。

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

之后就可以在应用中定义Entity了,并使用javax.persistence相关注解了。比如下面就定义了一个简单的User实体。

@Entity
@Table(name="tb_user")
@Data
public class User {

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Long id;
    
    private String name;
    
    private String username;
    
}

之后可以定义自己的JpaRepository。

public interface UserJpaRepository extends JpaRepository<User, Long> {

    List<User> findByName(String name);
    
}

如果你的目录结构是按照Spring Boot建议的目录结构,上面定义的Repository将自动被Spring Boot扫描到,并被注册为一个Spring bean。Spring Boot默认会扫描标注了@SpringBootApplication注解的Class所在的package下面的所有的package。如果需要扫描其它目录下的Repository,则可以通过@EnableJpaRepositories("com.xxx.package")来指定。

之后就可以在Service中注入定义好的Repository进行相应的增删改查了,比如下面这样:

@Service
public class UserService {

    @Autowired
    private UserJpaRepository userRepository;
    
    public void save(User user) {
        this.userRepository.save(user);
    }
    
    public void save(List<User> users) {
        this.userRepository.saveAll(users);
    }
    
    public List<User> findByName(String name) {
        return this.userRepository.findByName(name);
    }
    
    public Optional<User> findById(Long id) {
        return this.userRepository.findById(id);
    }
    
}

添加了spring-boot-starter-data-jpa依赖后,默认会使用JPA的Hibernate实现。org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration将负责JPA的自动配置,其只有在bean容器中只定义了一个DataSource时才会进行自动配置。可以通过spring.jpa前缀的配置属性配置Hibernate JPA的相关信息,对应的配置属性将由org.springframework.boot.autoconfigure.orm.jpa.JpaProperties负责接收。可以通过spring.jpa.show-sql指定是否需要打印SQL语句,可以通过spring.jpa.hibernate.*指定Hibernate特定的配置信息。比如通过spring.jpa.hibernate.ddl-auto指定是否需要基于实体配置自动应用对应的DDL语句到数据库,它相当于使用Hibernate时的hibernate.hbm2ddl.auto

spring.jpa.database=mysql
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update

Spring Boot会自动注册org.springframework.orm.jpa.support.OpenEntityManagerInViewInterceptor,以便可以在Web应用中使用懒加载。如果不需要自动注册OpenEntityManagerInViewInterceptor,则可以配置spring.jpa.open-in-view=false。关于JPA可以配置的更多信息请参考org.springframework.boot.autoconfigure.orm.jpa.JpaProperties的API文档。

Spring Boot默认会自动扫描Jpa Repository,如果不希望自动扫描Repository,可以配置spring.data.jpa.repositories.enabled=false

本文主要介绍在Spring Boot应用中如何使用Spring Data Jpa,关于Spring Data Jpa的更多应用请参考相应的文档。

(注:本文是基于Spring Boot 2.0.3所写)

0
0
分享到:
评论

相关推荐

    spring boot整合JPA——demo

    本示例“spring boot整合JPA——demo”将演示如何在Spring Boot项目中配置和使用JPA。 首先,我们需要理解Spring Boot与JPA的关系。Spring Boot是基于Spring框架的快速开发工具,它通过自动化配置减少了常规设置...

    Spring Data JPA 笔记

    通过使用Spring Data JPA,开发者可以避免编写大量的JPA(Java Persistence API)和SQL代码,专注于业务逻辑。本笔记将深入探讨Spring Data JPA的核心概念、功能以及如何在实际项目中应用。 首先,我们需要理解JPA...

    Spring Boot整合SpringDataJPA

    本教程将深入探讨如何在Spring Boot项目中整合Spring Data JPA,实现高效且简洁的数据持久化。 首先,Spring Boot整合Spring Data JPA的基础是引入相关的依赖。在`pom.xml`或`build.gradle`文件中,我们需要添加...

    spring boot jpa security

    综合上述信息,我们可以创建一个Spring Boot应用,使用Spring Data JPA进行数据持久化,Spring Security负责应用的安全管理,达梦数据库作为后端数据存储,FreeMarker处理前端展示,最后通过Assembly插件将整个项目...

    Spring Boot使用spring-data-jpa配置Mysql多数据源

    在Spring Boot应用中,使用`spring-data-jpa`来配置MySQL多数据源是一项常见的需求,尤其是在构建大型分布式系统时,为了实现数据隔离、负载均衡或读写分离等目的。本教程将详细介绍如何在Spring Boot项目中配置多个...

    Spring Boot JpaRepository知识学习(Spring Data JPA)

    总结起来,Spring Boot与Spring Data JPA的结合使用能够帮助开发者快速、高效地处理数据库操作。通过声明式的方法,我们可以专注于业务逻辑,而不是底层的SQL。同时,结合Eureka这样的服务注册与发现组件,可以在...

    Spring Data JPA的优点和难点.pdf

    - Spring Data JPA可以无缝地与Spring Boot、Spring MVC、Spring Transaction管理等组件集成,为开发者提供了完整的解决方案,降低了系统的复杂性。 然而,尽管Spring Data JPA带来了诸多便利,但在实际使用中也会...

    Spring Boot+Maven+Spring Data JPA+apache Shiro+Easyui实现通用用户权限管理系统

    本项目基于"Spring Boot+Maven+Spring Data JPA+apache Shiro+Easyui",这些技术栈的选择旨在简化开发过程,提供强大的功能,并确保系统的安全性和用户体验。 1. **Spring Boot**: Spring Boot是Spring框架的简化版...

    Spring Boot+Jpa多数据源配置Demo(支持不同数据库)

    Spring Boot结合JPA(Java Persistence API)和JdbcTemplate,为开发者提供了灵活且强大的多数据源配置能力。本示例将详细介绍如何在Spring Boot项目中实现这样的配置,以支持不同类型的数据库。 首先,我们要理解...

    管理系统系列--基于spring boot脚手架项目,spring data jpa+Spring Boot2+bo.zip

    通过学习这个项目,你可以了解到如何使用Spring Boot搭建一个完整的管理系系统,理解Spring Data JPA如何简化数据库操作,以及如何通过BO模式来组织业务逻辑。此外,你还将有机会实践项目的构建、测试和部署流程,...

    spring boot+jpa+redis集群

    2. 引入依赖:在`pom.xml`或`build.gradle`文件中添加Spring Boot的 Starter Web、Starter Data JPA以及Spring Data Redis的依赖。 3. 配置JPA:在Spring Boot的配置文件中,设置JPA的实体扫描路径、数据库方言、...

    ng-spring-boot, Spring Boot Spring Data JPA AngularJS示例.zip

    ng-spring-boot, Spring Boot Spring Data JPA AngularJS示例 采用 Spring Boot 和AngularJS的快速Prototype快速 Prototype这个例子演示了英镑 Spring Boot Spring Data JPA 和前端可以一起用来编写web应用程序的...

    Spring Boot 系列教程 Data JPA

    **Spring Boot 系列教程 Data JPA** Spring Boot 是一个基于 Spring 框架的快速开发工具,它简化了配置和启动...通过学习这个系列教程,你将全面掌握如何在 Spring Boot 应用中有效地使用 Data JPA 进行数据持久化。

    Spring Boot+Spring Data Jpa进销存系统源码.zip

    Spring Boot+Spring Data Jpa进...本系统使用Spring Boot架构,数据访问层采用Spring Data Jpa,安全框架采用Shiro,实现了完整权限系统,Controller方法采用Shiro注解,来实现有效的权限控制;界面采用了EasyUI技术。

    Spring Data JPA Demo

    通过这个“Spring Data JPA Demo”,我们可以学习如何在Spring Boot 应用中快速地搭建数据访问层,利用其强大的功能简化开发,提高效率。同时,了解Spring Data JPA 如何与Hibernate 配合工作,以及如何处理复杂的...

    Spring Boot 2.X 实战教程.pdf

    本课程内容包括Spring简介、Spring Boot简介、安装JDK、安装Maven、第一个Spring Boot程序(使用Spring Initializr构建、Spring Boot代码讲解、安装Notepad++)、构建系统、代码、配置、三种方式运行程序、安装...

    Springboot集成spring-data-jpa增删查改使用ajax数据交互

    在开发Web应用时,Spring Boot和Spring Data JPA是常用的技术框架,它们简化了数据库操作和前后端交互。本教程将详细介绍如何在Spring Boot项目中集成Spring Data JPA,实现CRUD(创建、读取、更新、删除)操作,并...

    springBoot整合springData JPA

    **SpringBoot整合SpringData JPA** 是一个现代Java开发中的常见技术栈,它结合了Spring Boot的便捷性和Spring Data JPA的数据访问效率。Spring Boot简化了应用的初始搭建以及配置,而Spring Data JPA则是Spring ...

    整合Spring Data JPA1

    - **环境搭建**:在 Maven 项目中添加相关依赖,包括 `spring-boot-starter-data-jpa`、数据库驱动(如 MySQL)、连接池(如 Druid),以及 Spring Boot 的父依赖 `spring-boot-starter-parent` 以统一版本管理。...

    Spring MVC+Spring+Spring data JPA

    Web 应用的模型-视图-控制器(MVC)框架,Spring 提供了依赖注入、AOP(面向切面编程)等核心功能,而 Spring Data JPA 则是简化数据库操作的利器,它封装了对 Java Persistence API(JPA)的使用。 **Spring MVC**...

Global site tag (gtag.js) - Google Analytics