JPA(一):十分钟入门 JPA

article/2025/9/18 12:06:13

一.JPA的概念

为了节省时间,更加具体的解释我们就略过吧。

二.在IDEA中使用JPA

2.1.添加JAP依赖

添加相关的maven依赖

<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.7</maven.compiler.source><maven.compiler.target>1.7</maven.compiler.target><hibernate.version>5.2.17.Final</hibernate.version><goda.time.version>2.9.9</goda.time.version></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><!-- jdbc驱动包  --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.37</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>4.3.10.Final</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-entitymanager</artifactId><version>4.3.10.Final</version></dependency><dependency><groupId>org.hibernate.javax.persistence</groupId><artifactId>hibernate-jpa-2.1-api</artifactId><version>1.0.0.Final</version></dependency><dependency><groupId>org.hibernate.common</groupId><artifactId>hibernate-commons-annotations</artifactId><version>4.0.5.Final</version></dependency><!--持久化依赖--><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>${goda.time.version}</version></dependency><dependency><groupId>org.jadira.usertype</groupId><artifactId>usertype.core</artifactId><version>6.0.1.GA</version></dependency><dependency><groupId>antlr</groupId><artifactId>antlr</artifactId><version>2.7.7</version></dependency><dependency><groupId>dom4j</groupId><artifactId>dom4j</artifactId><version>1.6.1</version></dependency><dependency><groupId>org.jboss</groupId><artifactId>jandex</artifactId><version>1.1.0.Final</version></dependency><dependency><groupId>org.javassist</groupId><artifactId>javassist</artifactId><version>3.18.1-GA</version></dependency><dependency><groupId>org.jboss.logging</groupId><artifactId>jboss-logging</artifactId><version>3.1.4.GA</version></dependency><dependency><groupId>org.jboss.logging</groupId><artifactId>jboss-logging-annotations</artifactId><version>1.2.0.Beta1</version><scope>provided</scope></dependency><dependency><groupId>org.jboss.spec.javax.transaction</groupId><artifactId>jboss-transaction-api_1.1_spec</artifactId><version>1.0.0.Final</version></dependency><dependency><groupId>javax.ejb</groupId><artifactId>ejb-api</artifactId><version>3.0</version></dependency></dependencies>

2.2.配置JPA运行环境

        在IDEA中,resources文件夹下,也就是资源文件夹下,创建META-INF文件夹,在该文件夹下创建persistence.xml文件,添加以下配置。

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"xmlns="http://xmlns.jcp.org/xml/ns/persistence"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistencehttp://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"><persistence-unit name="MyJPA" transaction-type="RESOURCE_LOCAL"><properties><property name="javax.persistence.jdbc.driver"value="com.mysql.jdbc.Driver" /><property name="javax.persistence.jdbc.url"value="jdbc:mysql://localhost:3306/jpa" /><property name="javax.persistence.jdbc.user" value="root" /><property name="javax.persistence.jdbc.password" value="root" /><property name="hibernate.dialect"value="org.hibernate.dialect.MySQL5Dialect" /><property name="hibernate.show_sql" value="true" /><property name="hibernate.hbm2ddl.auto" value="update" /></properties></persistence-unit></persistence>

如下:

2.3.创建表

CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(255) DEFAULT NULL,`password` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

2.4.在IDEA中配置数据源

在IDEA的右边有Database,按以下步骤操作即可。

这里也可以不配置,配置之后,可以在IDEA中直接看到数据库中的表,并且之后再IDEA中写的代码也不用有警告。

添加你的数据库名字,第一次配置下边会提示你下载插件,很具提示即可。

2.5.测试

创建User类

package com.hly.jpa.model.oneToOne;import javax.persistence.*;
/*** @author :hly* @github :github.com/SiriusHly* @blog :blog.csdn.net/Sirius_hly* @date :2018/9/27*/
@Entity
//指定表名,指定唯一约束
@Table(name = "user",uniqueConstraints = {@UniqueConstraint(columnNames = {"id","name"})})
public class User {@Id//指定主键@GeneratedValueprivate int id;@Columnprivate String name;@Columnprivate String password;//一对一映射@OneToOne(optional = true, cascade = CascadeType.ALL)@JoinColumn(name = "articleId", unique = true)public Article article;//省略了getter和setter
}
 /*** 获取应用管理的EntityManager*/@Testpublic void testApplicationEntityManager() {EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("MyJPA");EntityManager em = entityManagerFactory.createEntityManager();em.getTransaction().begin();User user = new User();user.setName("hly");//以上两行为新建状态//托管状态em.persist(user);//事务提交或调用flush()方法后会同步到数据库em.getTransaction().commit();//根据主键获取对象//System.err.println(em.find(User.class,1));//System.err.println(em.getReference(User.class,1));em.close();entityManagerFactory.close();}

数据库中插入数据则成功。

2.6.EntityManager接口

2.7.实体类中注解的含义

2.8.代码及地址思维导图

完整代码在笔者的github,欢迎访问。

清晰思维导图分享地址为:JPA思维导图


http://chatgpt.dhexx.cn/article/W6tHv7wg.shtml

相关文章

【Tools】管理JPA数据模型的最先进的IntelliJ插件:JPA Buddy

目录 说明基础操作JPA BuddyEasyCode 说明 使用IDEA版本为 2022.2.1。由于IDEA版本或插件版本的不同&#xff0c;操作界面可能略有不同。了解了JPA Buddy和EasyCode&#xff0c;个人更倾向于JPA Buddy&#xff0c;功能更强大&#xff0c;操作简单。 JPA Buddy通过以下方式简化了…

JPA和Spring-Data-JPA简介

什么是JPA JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。它的出现主要是为了简化现有的持久化开发工作和整合ORM技术 ORM&#xff1a;通过使用描述对象和数据库之间映射的元数据&#x…

SpringBoot 一文搞懂Spring JPA

一文搞懂Spring JPA 什么是 JPA spirng data jpa是spring提供的一套简化JPA开发的框架&#xff0c;按照约定好的【方法命名规则】写dao层接口&#xff0c;就可以在不写接口实现的情况下&#xff0c;实现对数据库的访问和操作。同时提供了很多除了CRUD之外的功能&#xff0c;如…

JPA基础知识----JPA 基本注解,JPA API

JPA 是什么 Java Persistence API&#xff1a;用于对象持久化的 API Java EE 5.0 平台标准的 ORM 规范&#xff0c;使得应用程序以统一的方式访问持久层 JPA和Hibernate的关系 JPA 是 hibernate 的一个抽象&#xff08;就像JDBC和JDBC驱动的关系&#xff09;&…

java jpa是什么_什么是JPA?

JDBC jdbc是一组规范&#xff0c;是接口&#xff0c;由不同的数据库厂商各自提供相应的实现类&#xff0c;打包成jar包&#xff0c;也就是所谓的数据库驱动。而我们的java应用程序&#xff0c;只需要调用jdbc的接口就可以了。 而JPA是和jdbc类似的东西 什么是JPA Java Persiste…

JPA与Mybatis的区别

其实JPA和mybatis大体上没什么区别&#xff0c;架构上很相似&#xff0c;mybatis就是mapper层&#xff0c;JPA就是repository层&#xff0c;其他都一样的 JPA就是把mapper层的接口换成repository的接口: 那么接口具体长什么样呢&#xff1f; mapper层 自己写sql语句 JPA的re…

什么是JPA?Java持续性介绍

新钛云服已累计为您分享723篇技术干货 本文将了解基于 Hibernate 的 Java 持久化标准&#xff0c;学习如何使用 JPA 在关系数据库或 NoSQL 数据库中存储和管理 Java 对象。 作为一种规范&#xff0c;Jakarta Persistence API&#xff08;以前称为 Java Persistence API&#xf…

spring boot 中使用 jpa以及jpa介绍

最近在项目中使用了一下jpa&#xff0c;发现还是挺好用的。这里就来讲一下jpa以及在spring boot中的使用。 在这里我们先来了解一下jpa。 1.什么是jpa呢&#xff1f; JPA顾名思义就是Java Persistence API的意思&#xff0c;是JDK 5.0注解或XML描述对象&#xff0d;关系表的…

JPA是什么

JPA仅仅是一种规范&#xff0c;也就是说JPA仅仅定义了一些接口&#xff0c;而接口是需要实现才能工作的。所以底层需要某种实现&#xff0c;而Hibernate就是实现了JPA接口的ORM框架。 也就是说&#xff1a; JPA是一套ORM规范&#xff0c;Hibernate实现了JPA规范&#xff01;如…

数据中台(一)数据中台详解

1.数据中台的由来 数据库阶段 ---> 传统数仓 ---> 大数据平台 ----> 大数据中台 1.1.数据存储起源&#xff1a;数据库 1979年&#xff1a;Oracle1.0商用数据库发布 1996年&#xff1a;MySQL1.0发布&#xff0c;到2000年以后开始火起来。 特点&#xff1a;数据库主要面…

通俗易懂解释什么是“中台”

通俗易懂解释什么是“中台” 随着互联网公司崛起&#xff0c;“中台”这个词也进入了人们的视线。BAT 等公司纷纷推出了自己的中台系统。那么&#xff0c;什么是中台系统&#xff1f;它是如何诞生的&#xff1f;它长什么模样&#xff1f;我们为什么需要它&#xff1f;一串串的问…

什么是中台

什么是中台&#xff1f; 前台 由各类前台系统组成的前端平台。每个前台系统就是一个用户触点&#xff0c;即企业的最终用户直接使用或交互的系统&#xff0c;是企业与最终用户的交点。列如用户直接使用的网站&#xff0c;手机APP&#xff0c;微信公众号都属于前台范畴。 中台&…

什么是“中台”?

“中台”这个概念&#xff0c;越来越多的在各种技术大会上提及&#xff0c;各大技术公司&#xff0c;纷纷推出自己的“中台”方案&#xff0c;究竟什么是“中台”&#xff1f;他和“前台”、“后台”有何区别&#xff1f; 《》&#xff0c;这是我的朋友、前同事小灰写的一篇漫画…

中台架构

中台是什么 企业互联网中台架构&#xff0c;简称中台&#xff0c;起源于阿里巴巴&#xff0c;不同的人对中台有不同解读。 我认为&#xff0c;中台可定义为&#xff1a;中台是一套结合互联网技术和行业特性&#xff0c;将企业核心能力以共享服务中心进行沉淀&#xff0c;形成“…

数据中台架构体系理解

目前&#xff0c;大部分企业更倾向于数据集中采集、存储&#xff0c;并应用分层建设。这种方式一方面有利于应用系统的快速部署&#xff0c;另一方面也保证了数据的集中管理与运营&#xff0c;体现数据的资产、资源属性。 数据中台的出现弥补了数据开发和应用开发之间由于开发…

业务中台和数据中台的区别

中台里面有两个很重要的中台&#xff0c;一个是业务中台&#xff0c;一个是数据中台。 业务中台是提供可复用的业务&#xff0c;API数据中台是提供数据洞察和智能的。 不管什么中台&#xff0c;它实际上都是平台思想的一个体现&#xff0c;一种具象。 二者的联系 数据中台从业…

数据中台详解

文章目录 什么是数据中台数据中台 VS 数据仓库数据中台的业务价值与技术价值 数据中台建设与架构数据中台建设方法论数据中台架构 数据汇聚联通&#xff1a;打破企业数据孤岛数据采集、汇聚的方法和工具数据交换 数据体系建设数据体系规划统一数仓层建设——标准化的数据底座相…

数据中台(七) 数据中台架构

总体架构图 数据存储 计算引擎 数据汇聚 数据汇聚是把数据资源通过实时、批量的方式存储到数据中台。基本是按照数据的原始状态堆砌在一起的&#xff0c;是企业对过往所有IT信息化建设积累的成果的融合。 数据开发 数据开发是数据资产内容建设的主战场&#xff0c;是数据价值…

什么是中台?

文章目录 中台——为前台而生一、没有中台的时代——传统项目二、中台的出现背景&#xff08;1&#xff09;国外&#xff08;最先&#xff09;&#xff08;2&#xff09;国内&#xff08;部分&#xff09;A. 阿里巴巴B. 华为 三、什么是中台四、为什么要做中台五、前中后台三者…

详解什么是中台?

什么是中台 最近被老板折腾得够呛&#xff0c;我们老板听说最近中台的概念很火&#xff0c;让我们调研公司实习中台战略的可行性。刚开始并不理解什么是中台… 因此&#xff0c;写篇博客先简单介绍下什么是中台。 要理解中台&#xff0c;要先清楚传统项目架构的痛点在哪里 没有…