Spring Boot - JPA配置使用

SpringBoot系列之数据库初始化-jpa配置方式 上一篇博文介绍如何使用来实现项目启动之后的数据库初始化,本文作为数据库初始化的第二篇,将主要介绍一下,如何使用spring.jpa的配置方式来实现相同的效果。 阅读详情

1.JPA是什么

JPA顾名思义就是Java Persistence API的意思,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。

2.使用JPA的优势

2.1标准化
JPA 是 JCP 组织发布的 Java EE 标准之一,因此任何声称符合 JPA 标准的框架都遵循同样的架构,提供相同的访问API,这保证了基于JPA开发的企业应用能够经过少量的修改就能够在不同的JPA框架下运行。
2.2容器级特性的支持
JPA框架中支持大数据集、事务、并发等容器级事务,这使得 JPA 超越了简单持久化框架的局限,在企业应用发挥更大的作用。
2.3简单方便
JPA的主要目标之一就是提供更加简单的编程模型:在JPA框架下创建实体和创建Java 类一样简单,没有任何的约束和限制,只需要使用 javax.persistence.Entity进行注释,JPA的框架和接口也都非常简单,没有太多特别的规则和设计模式的要求,开发者可以很容易的掌握。JPA基于非侵入式原则设计,因此可以很容易的和其它框架或者容器集成。
2.4查询能力
JPA的查询语言是面向对象而非面向数据库的,它以面向对象的自然语法构造查询语句,可以看成是Hibernate HQL的等价物。JPA定义了独特的JPQL(Java Persistence Query Language),JPQL是EJB QL的一种扩展,它是针对实体的一种查询语言,操作对象是实体,而不是关系数据库的表,而且能够支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能够提供的高级查询特性,甚至还能够支持子查询。
2.4高级特性
JPA 中能够支持面向对象的高级特性,如类之间的继承、多态和类之间的复杂关系,这样的支持能够让开发者最大限度的使用面向对象的模型设计企业应用,而不需要自行处理这些特性在关系数据库的持久化。

更多的JPA知识可以自己相关学习下.

3.配置Spring Boot 数据源和JPA配置

Jpa配置

  1. 配置Spring Boot的maven依赖

    <dependency>
    	<groupId>org.springframework.boot</groupId>
    	<artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
    	<groupId>mysql</groupId>
    	<artifactId>mysql-connector-java</artifactId>
    	<scope>runtime</scope>
    </dependency>
    
  2. Spring Boot的JPA配置

    spring.jpa.hibernate.ddl-auto=update
    spring.jpa.show-sql=true
    
  3. Spring Boot数据库连接配置

    spring.datasource.url=jdbc:mysql://localhost:3306/springboottest?useUnicode=true&characterEncoding=utf-8
    spring.datasource.username=root
    spring.datasource.password=123456
    spring.datasource.driver-class-name=com.mysql.jdbc.Driver
    

4.创建测试实体类和测试方法

  1. 创建实体类User类(图1位置)

    @Entity
    @Table(name = "User")
    public class User {
    
    	public User() {
    		
    	}
    	
    	public User(String username, int age) {
    		this.username = username;
    		this.age = age;
    	}
    	
    	@Id
    	@GeneratedValue(strategy = GenerationType.IDENTITY)
    	private Integer id;
    	
    	@Column
    	private String username;
    	
    	@Column
    	private int age;
    
    	public Integer getId() {
    		return id;
    	}
    
    	public void setId(Integer id) {
    		this.id = id;
    	}
    
    	public String getUsername() {
    		return username;
    	}
    
    	public void setUsername(String username) {
    		this.username = username;
    	}
    
    	public int getAge() {
    		return age;
    	}
    
    	public void setAge(int age) {
    		this.age = age;
    	}
    }
    
  2. 定义接口,继承JpaRepository(图2位置)

    public interface TestUserDao extends JpaRepository<User, Integer> {}
    
  3. 写入增删改查代码于测试类中(图3所示)

    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class SpringBootDemo8ApplicationTests {
    
    	@Test
    	public void contextLoads() {
    	}
    
    	@Autowired
    	private TestUserDao testUserDao;
    	
    	@Test
    	public void insert() {
    		User user= new User();
    		user.setUsername("zhang san");
    		user.setAge(23);
    		testUserDao.save(user);
    	}
    
    	@Test
    	public void update() {
    		User user = new User();
    		user.setId(1);
    		user.setAge(18);
    		user.setUsername("李四");
    		testUserDao.save(user);
    	}
    	
    	@Test
    	public void select() {
    		Optional<User> user = testUserDao.findById(1);
    		System.out.println(user);
    	}
    	
    	@Test
    	public void delete() {
    		testUserDao.deleteById(1);
    	}
    }
    

    执行insert方法,可以看到console面板输出sql语句;查看数据库,能看到表已经被创建,同时插入了一条信息

    insert输出sql

    这里写图片描述
    依次执行以下几个测试方法,都能看到修改、查询和删除生效,此处配置已经都OK.

4. Spring JpaRepository其他查询方式

  1. 除了以上基础的CRUD操作外,我们可以查询Spring Data JPA文档中找到很多使用方法,例如拼接两个条件的查询,我们可以在TestUserDao中创建接口方法User findByUsernameAndAge(String string, int i);,然后使用中调用此方法传入用户名和年龄查询.

  2. 如果在API中提供的查询仍然无法满足我们的查询的话,我们可以在TestUserDao写入如下方法

    @Query("select t from User t where t.username = ?1")
    User findByUsername(String username);
    

    在测试类中,写入方法

    @Test
    public void findByUsername() {
    	User user = testUserDao.findByUsername("李四");
    	System.out.println(user);
    }
    

    执行结果
    自定义jpa查询
    此外,Spring JpaRepository还有其他很多方便的使用方法,有时间可以多了解下,这里就不多说.

Spring Boot的多数据源配置——JPA     之前的项目一直在用Mybatis,不过因为sql都比较复杂,所Mybatis实现起来很方便。但一些简单的增删改查却也要写sql就比较麻烦了,毕竟代码的话能少写一点是一点。于是开始打算用JPA来做一些简单的小服务。一. yml文件配置    项目就直接用STS建了,导包也直接在建项目时勾选就行。    如果只是单独的数据源的话直接配置yml使用Spring Boot的datasource配置... 阅读详情

相关推荐

【云原生技术】Spring Boot、Spring Cloud、JPA 设置、Spring Profiles 以及 应用配置文件的使用

通过这种结构化整理,你可以清晰地理解 Spring Boot 和 Spring Cloud 相关概念及其相互关系。这些概念涵盖了应用程序的配置、数据访问、服务管理等多个方面,为你未来的开发工作奠定了良好的基础。

weixin_46453070的博客 1997

2.springboot配置jpa

JPA Page类属性如下。7.分页查询测试打印如下。

qq_44959735的博客 1268

Spring Boot中实现JPA多数据源配置指南

本文还有配套的精品资源,点击获取 简介:本文详细介绍了在Spring Boot项目中配置和使用JPA进行多数据源管理的步骤。从引入依赖开始,到配置数据源、创建DataSource bean、定义实体和Repository,最后到配置事务管理器和使用多数据源进行操作。内容涵盖了为不同的数据库配置独立数据源、实体类和对应的Repository接口,以及通过注解注入服务层并使用特...

weixin_36444661的博客 2758

spring data jpa的update操作

简介  使用jpa进行update操作主要有两种方式: 1、调用保存实体的方法       1)保存一个实体:repository.save(T entity)       2)保存多个实体:repository.save(Iterable&lt;T&gt; entities)       3)保存并立即刷新一个实体:repository.saveAndFlush(T entity) 注:若是更改...

weixin_33750452的博客 2912

【Codex安装使用手册】

Codex安装部署使用教程

qq_43392230的博客 4937

ENVI5.6 批量处理GF-2/GF-6/GF-7:从安装到融合的完整自动化流程

本文详细介绍了ENVI5.6环境下批量处理GF-2/GF-6/GF-7卫星数据的完整自动化流程,包括环境配置、工具安装、正射校正、图像融合等关键步骤。通过实战案例和优化技巧,帮助用户高效完成高分卫星影像处理,提升工作效率。特别针对GF-6和GF-7的特殊处理要点进行了深入解析。

weixin_42546392的博客 179

Springboot中Jpa的常用配置

例如,一个Java实体类中可能包含一些计算属性或临时属性,这些属性的值是通过其他属性计算出来的,而不是从数据库表中读取的。注解也可以用于一些计算属性或临时属性,这是一个Java注解,用于标记一个实体类属性不需要映射到数据库表的字段上。注解可以明确告诉ORM框架该属性不需要映射到数据库表中,从而避免不必要的数据库操作和数据冗余。注解,那么ORM框架默认会将该属性映射为数据库表的一个字段,导致不必要的数据库操作和数据冗余。属性映射为数据库表的一个字段,导致数据冗余和不必要的数据库操作。另外,需要注意的是,

m0_61900952的博客 2370

告别WSL!用AMD ROCm7在Windows上跑ComfyUI,我的幻x2025 AI Max+ 395体验与性能调优心得

本文详细介绍了在搭载AMD Ryzen AI Max+ 395处理器的幻x2025笔记本上,如何通过ROCm7在Windows原生环境下高效运行ComfyUI,并分享了一系列性能调优技巧和实战经验,帮助开发者摆脱WSL束缚,提升AI创作效率。

weixin_29102619的博客 1114

SpringBoot整合JPA

SpringBoot整合JPA

YIYIYI 1万+

Spring AI 实战:5 分钟搭建你的第一个 AI 应用(含完整代码)

能力关键 API适用场景基础对话简单问答、文本生成流式输出实时打字机效果@Bean模型需要调用外部工具结构化输出需要返回 Java 对象多轮对话聊天机器人场景Spring AI 让 Java 开发者可以用最熟悉的方式(Spring Boot + Maven)进入 AI 应用开发领域,不用学新语言,不用换框架,这是它最大的优势。但目前为止,我们的 AI 应用只能回答"它脑子里已有的知识"。如果让它读懂你自己的技术文档、公司内部知识库呢?这就是下一篇文章的主题——RAG(检索增强生成)实战。

qq_17204557的博客 642

CISSP背书三次失败后的终极解决方案

本文分享了作者CISSP认证三次线上背书审核失败的经历与终极解决方案。针对(ISC)²官方审核的严格性,文章详细剖析了使用公积金证明、工作证明盖章签字等常见材料的误区,并最终提出了通过构建“官方邮件往来”证据链的核心策略,以动态、可验证的方式成功通过审核,为后来者提供了详实的避坑指南和实操清单。

weixin_29219539的博客 153

spring boot使用JPA和配置

1认识JPA JPA (Java Pesitence API )是 Java 的持久化 API ,用于对象的持久化。它是一个非常强 大的 ORM 持久化的解决方案 免去了使用 JDBCTemplate 开发的编写脚本工作。 JPA 通过简单约定好接口方法的规则自动生成相应的 JPQL 语句,然后映射成 POJO 对象 JPA 是一个规范化接口,封装了 Hibernate 的操作作为默认实现 让用户不通过任何配置即可完成数据库的操作。 JPA Spring Date 相同bernate 的关系如图 所示 H

qq_45769949的博客 884

模拟IC设计实战:折叠式共源共栅放大器的参数优化与噪声抑制

本文深入探讨了折叠式共源共栅放大器的核心设计要点。针对低电压下增益与输出摆幅的矛盾,文章详细阐述了从套筒式结构转向折叠式结构的必要性,并重点分析了其参数优化与噪声抑制的实战方法。通过手把手的参数计算流程,指导如何平衡增益、带宽、摆幅与功耗。同时,深入剖析了噪声来源,强调了采用PMOS输入对管以抑制1/f噪声,并提供了针对共栅管及电流镜的噪声优化策略,是模拟IC设计中高性能放大器设计的实用指南。

vv45678的博客 978

Spring Boot对JPA的自动配置

一 点睛 Spring Boot对JPA的自动配置放置在下面路径下: 二 源码分析 1  HibernateJpaAutoConfiguration类分析 //Spring Boot默认JPA的实现者是Hibernate @Configuration @ConditionalOnClass({ LocalContainerEntityManagerFactoryBean.class,...

实践求真知 2699

C++实现SM4国密算法实战指南

通过以上实现,开发者可以快速在C++项目中集成SM4国密算法,满足金融、政务等领域的安全需求。实际部署时建议通过国家密码管理局的合规性检测,并定期更新密钥管理策略。库(支持国密算法),需提前安装并配置开发环境。

skyksksksksks的博客 1487

【低照度图像增强系列】使用MSRCR(Multi-Scale Retinex with Color Restoration)算法对低照度图像进行增强处理

【低照度图像增强系列】使用MSRCR(Multi-Scale Retinex with Color Restoration)算法对低照度图像进行增强处理

静谧、淡雅 648

Spring Boot Jpa配置使用详细说明

本文详细介绍了Spring Data JPA的使用方法,包括依赖配置、实体类定义、Repository接口设计和事务管理等内容。文章对比了Spring Boot和非Spring Boot项目的配置差异,讲解了实体关系映射、查询优化和性能调优技巧。同时提供了复杂查询实现、多数据源配置、乐观锁/悲观锁应用等进阶内容,并总结了实际开发中的最佳实践和常见问题解决方案。全文涵盖了从基础配置到高级特性的完整知识体系,为开发者使用JPA进行数据持久化提供了全面的技术指导。

onlymscn的博客 709

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Spring Boot对Spring Data JPA的自动配置

一 点睛 Spring Boot对Spring Data JPA的自动配置放置在如下路径: 二 源码分析 1 JpaRepositoriesAutoConfiguration类分析 @Configuration @ConditionalOnBean(DataSource.class) @ConditionalOnClass(JpaRepository.class) @Conditio...

实践求真知 3103

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

基于Spring Boot与Spring Data JPA的多数据源配置

由于项目需要,最近研究了一下基于Spring Boot与Spring Data JPA的多数据源配置问题。以下是传统的单数据源配置代码。这里使用的是Spring的Annotation在代码内部直接配置的方式,没有使用任何XML文件。 @Configuration @EnableJpaRepositories(basePackages = "org.lyndon.repository") @Ena

gabriel_2的专栏 1万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Spring Boot2配置Sqlite数据库JPA

什么是JPA? JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 The Java Persistence API provides a POJO persistence model for object-relational mapping. The Java Pe...

vic_torsun的博客 1870

oracle配置jpa,Spring Boot + Spring Data JPA + Oracle教程示例

Spring Boot + Spring Data JPA + Oracle教程示例当你从Spring Boot开始时,如果没有定义其他数据源并且在类路径上找到H2,它将自动支持H2。我一直在使用H2进行开发。它工作得很好。所有现代关系数据库都将支持ANSI SQL。但每个人都会有自己的细微差别和扩展。我喜欢H2的一件事是它的Oracle兼容模式。它允许H2充当Oracle数据库。它并不完美,但确...

weixin_35798040的博客 1130

Spring Boot 多数据源配置(JPA)

一般一个系统至少有一个数据源,用来持久化业务数据以及查询。单个数据源的系统很常见,在 Spring Boot 框架下配置也很简单。在约定大于配置这个思想下,只需要在配置文件中简单配置下数据库连接信息就行了。除了单数据源系统,在实际工作中,还会遇到多数据源系统。

3170

测试开发专题:spring-boot如何使用JPA进行双向一对多配置

本片文章我们主要介绍spring-boot如何进行JPA的配置以及如何进行实体间的一对多配置。 依赖准备 要在spring-boot使用jpa需要在项目中有进入相关的依赖,pom文件里加入下面内容 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dep

测试轩 1079

java jpa 配置文件_spring boot配置文件application.properties配置JPA以及数据源

本文将为您描述spring boot配置文件application.properties配置JPA以及数据源,具体操作过程:1.application.properties配置jpa模板spring.datasource.url=jdbc:mysql://localhost:3306/springboottest?useUnicode=true&characterEncoding=utf8...

weixin_39992312的博客 239

完整的 Spring Boot + Hibernate/JPA + P6Spy 配置指南

然后在中引用:properties。

你能找到这里,说明你有经天纬地之才,扭转乾坤只能,鬼神不测之计包藏宇宙之志,真乃乱世之枭雄,治世之能臣也 1072

spring boot 配置 JPA

1.配置maven <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency>在pom.xml 中配置出spring boot的jpa,

89lovelc 457
上一篇: POJO和JavaBean的区别
下一篇: Spring Boot缓存之EhCache
mxjesse
博客等级 码龄17年 9粉丝 19原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值