Hibernate学习之路(9) JPA实例

JPA(三):JPA+Hibernate 基础学习 在该系列的第一篇文章中,我们已经提到JPA和Hibernate。下图是两者在系统架构中的作用:       由以上图片我们可以得出两个结论:首先JPA的主要作用就是持久化操作;其次JPA只是一种规范,它需要一种实现,正如上图显示的,Hibernate、oPenJPA等等。简单些,可以说JPA只是一套接口,本身不能完成任何事情。             而这篇博文的主要内容就是对JP 阅读详情

一:首先导入JPA依赖的jar文件
这里写图片描述
二:JPA的配置文件
JPA规范要求在类路径的META-INF目录下放置persistence.xml,文件的名称是固定的

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
   http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
   version="2.0">
   <!-- 配置持久化单元 ,可以配置多个,但是名称不能重复
        name:用于指定持久化单元名称
        transaction-type:指定事务类型
   -->

   <persistence-unit name="myJPAUnit" transaction-type="RESOURCE_LOCAL">
        <!-- 注意在5.3.1版本中,provider为org.hibernate.jpa.HibernatePersistenceProvider
            而不是org.hibernate.ejb.HibernatePersistence
         -->
        <!--<provider>org.hibernate.ejb.HibernatePersistence</provider>-->
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <!-- 指定JPA注解的实体类位置 -->
            <class>entity.Customer</class>
        <!-- 连接数据库的配置,其实就是hibernate.cfg.xml的内容 -->
            <properties>
                <!-- 第一部分:连接数据库的信息 -->
                <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"></property>
                <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/hibernate?characterEncoding=UTF-8 "></property>
                <property name="hibernate.connection.username" value="root"></property>
                <property name="hibernate.connection.password" value="123456"></property>
                <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"></property>
                <!-- 可选配置 -->
                    <!-- 显示sql语句 -->
                <property name="hibernate.show_sql" value="true"></property>
                    <!-- 格式化输出sql语句 -->
                <property name="hibernate.format_sql" value="true"></property>
                    <!-- 采用哪种方式生成DDL语句 
                        update:表示检查实体类的映射配置和数据库的表结构是否一致,如果不一致,更新表结构
                    -->
                <property name="hibernate.hbm2ddl.auto" value="update"></property>
            </properties>

   </persistence-unit>

   </persistence>

三 ,

 @Test
    public void test01(){
    Customer customer = new Customer();
    customer.setCustName("JPA");
    //获取EntityManager对象
    EntityManager em = JPAUtil.createEntityManager();
    //开启EntityTransaction事务
    EntityTransaction etx = em.getTransaction();
    etx.begin();
    //保存操作
    em.persist(customer);
    /*
     * 增加:
     *  em.persist(customer);
     * 查找:
     *  em.find(Customer.class, 1);
     * 更新:
     *  em.merge(customer);
     * 删除
     *  em.remove(customer);
     * 
     */
    //提交事务
    etx.commit();
    em.close();
    }

 @Test
    public void test02(){
    Customer customer = new Customer();
    customer.setCustName("JPA");
    //获取EntityManager对象
    EntityManager em = JPAUtil.createEntityManager();
    //开启EntityTransaction事务
    EntityTransaction etx = em.getTransaction();
    etx.begin();
    Query query = em.createQuery("select c from Customer c");
    List<Customer> list = query.getResultList();
    for(Customer os:list){
        System.out.println(os);
    }

    //提交事务
    etx.commit();
    em.close();
    }
混合使用JPA和Hibernate JPA的出现, 统一了逐渐混乱起来的Java ORM产品, 这无疑是件好事情, 包括toplink, hibernate, kodo,openJPA 等几种ORM实现现在都已经兼容支持JPA了.Hibernate作为一个广为人知的ORM/JPA实现, 是我比较喜欢并熟悉的一个, 因此把Glassfish默认的Toplink替换成了Hibernate.  JPA的persistence操作是通过 阅读详情

相关推荐

空间节省算法在Rowhammer防御中的应用与优化

空间节省算法(Space-Saving)是一种高效的流式数据处理算法,主要用于在有限内存条件下实时识别数据流中的高频项。其核心原理是通过维护固定大小的计数器表,动态跟踪最活跃的元素,适用于处理无限数据流场景。该算法在内存安全领域具有重要价值,特别是在Rowhammer攻击防御中,能够有效检测异常高频访问的DRAM行地址。通过结合计数器衰减策略(如DSAC)和混合架构设计,空间节省算法可以在保证低硬件开销的同时,提供高精度的攻击检测能力。这些技术已成功应用于现代DDR5内存控制器,展现出优异的工程实践价值。

weixin_31139479的博客 606

JPA jar包依赖中实体类命名冲突带来的 隐藏问题

首先Jar包A中有实体类TEvent 对应数据库表 event,Jar包B中有实体类TEvent对应的数据库表event,当A需要引入B的依赖时候,AB两个Jar包中就会有实体类命名冲突,如果AB中的JPARepository命名相同会直接启动挂掉,repository无法注入。即使repository名字不一样启动成功了,如果repository中有@Query自定义sql ![JPA自定义sq...

kangxiaolan的博客 554

手把手教你设计2bit反射型超表面:从单patch扫参到pin管配置全流程

本文提供了一份2bit反射型超表面设计的完整工程实践指南。从单贴片谐振器的参数化扫描与“270度法则”应用,到PIN二极管等效电路模型的获取与集成,再到利用参数化扫描高效仿真四种工作状态,手把手指导读者完成从单元设计到阵列布局、偏置线集成及加工考量的全流程,旨在帮助射频工程师将概念转化为可加工测试的实体模型。

java5的博客 1022

关于java JPA (小结) Java Persistence API

JPA(Java Persistence API)作为Java EE 5.0平台标准的ORM规范,将得到所有Java EE服务器的支持。Sun这次吸取了之前EJB规范惨痛失败的经历,在充分吸收现有ORM框架的基础上,得到了一个易于使用、伸缩性强的ORM规范。 JPA通过JDK

今天的追求 && 明天的梦想 7904

保姆级教程:Synology NAS共享文件夹从创建到权限设置的完整流程

本文提供了一份详尽的Synology NAS共享文件夹创建与权限设置指南。重点讲解了如何将NAS接入企业AD域,并利用域管理员账户进行集中身份验证和权限管理。文章从基础概念、域环境配置、文件夹创建、精细化权限分配到客户端访问与维护,完整覆盖了构建安全高效企业级文件共享空间的全流程,旨在帮助管理员实现便捷的团队协作与数据安全管理。

u9v0w的博客 554

DISK配置服务器软RAID工作任务(RAID1+BITLOCKER)-winserver4

DISK配置服务器软RAID工作任务(RAID1+BITLOCKER)-winserver4

新时代先锋的博客 7299

JPA Persistence Unit

JPA Persistence Unit<br />A JPA Persistence Unit is a logical grouping of user defined persistable classes (entity classes, embeddable classes and mapped superclasses) with related settings. Defining a persistence unit is optional when using ObjectDB

xgbjmxn的专栏 3935

手把手教你学SOC芯片架构--NoC(片上网络,Network on Chip)全方位解析

​、​。

MHD0815的博客 864

JPA基础使用实例

各种表关系类代码示例,带关键注释说明。简单使用的话可以直接参考,查各种高端的、专门的资料实在是太费劲了。

weixin_50405316的博客 1145

第16课:动手实战中文句法依存分析

句法分析是自然语言处理(NLP)中的关键技术之一,其基本任务是确定句子的句法结构或者句子中词汇之间的依存关系。主要包括两方面的内容:一是确定语言的语法体系,即对语言中合法句子的语法结构给予形式化的定义;另一方面是句法分析技术,即根据给定的语法体系,自动推导出句子的句法结构,分析句子所包含的句法单位和这些句法单位之间的关系。 句法分析被用在很多场景中,比如搜索引擎用户日志分析和关键词识别,比如信息抽...

春华秋实 2437

手把手教你学Simulink——基于Simulink的CLLC谐振变换器双向对称控制

本文介绍了一种基于Simulink的CLLC谐振变换器双向对称控制方法。针对CLLC拓扑的多阶谐振特性,采用固定频率、50%占空比、仅调节相位差的对称控制策略,实现了宽电压范围调节和全负载ZVS软开关。详细阐述了Simulink建模步骤,包括功率级搭建、相位差生成逻辑和双向切换实现,并通过仿真验证了稳态性能和双向无缝切换能力。该方法解决了传统PFM控制的不足,具有控制简单、效率高、易于工程实现的优势,适用于车载充电和储能系统等双向功率应用场景。

MHD0815的博客 302

hibernate比较全面的配制说明

Hibernate JPA自定义配置可以通过多种方式进行配置,如下面列举的几种方法。 方法一:在persistence.xml文件中配置,如下所示。 org.hibernate.ejb.HibernatePersistence value="com.mysql.jdbc.Driver" /> value="jdbc:mysql:

JavaEE高级工程师的专栏 7419

基于Simulink进行光伏逆变器效率分析的仿真建模

特点能量转换:将光伏电池板产生的直流电转换为交流电。效率评估:分析逆变器在不同负载条件和环境条件下的效率。动态特性:考虑温度、光照强度等外部因素对逆变器效率的影响。挑战精确建模:准确地模拟光伏电池板、逆变器及其交互的动力学过程。多因素考量:需要同时考虑输入电压、电流、温度、光照强度等多种因素对逆变器效率的影响。集成度:需要与其他系统(如最大功率点跟踪MPPT算法、电网连接等)无缝集成,以实现全面的系统分析。首先明确要模拟的任务内容。输入条件(如光照强度、温度等)。

amy_mhd的博客 142

学习Hibernate5 JPA这一篇就够了

目录第一章 Hibernate5 JPA快速入门1.1、Hibernate5 JPA概述1.2、Hibernate5 JPA下载1.3、Hibernate5 JPA工程搭建1.4、Hibernate5 JPA增删改查1.5、Hibernate5 JPA工具类第二章 Hibernate5 JPA核心对象2.1、Persistence2.2、EntityManagerFactory2.3、EntityManager2.4、EntityTransaction第三章 Hibernate5 JPA映射配置3.1、一对

轻松的小希 9222

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

谈hibernate,jpa与spring data jpa三者之间的关系

前提 其实很多框架都是对另一个框架的封装,我们在学习类似的框架的时候,难免会进入误区,所以我们就应该对其进行总结归纳,对比。 本文就是对hibernate,jpa,spring data jpa三者之间进行文字对比,以及对其三者分别进行CRUD操作。 文字说明 Hibernate Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建...

qq_41300350的博客 1万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

SpringData Jpa、Hibernate、Jpa 三者之间的关系

JPA规范与ORM框架之间的关系是怎样的呢? JPA规范本质上就是一种ORM规范,注意不是ORM框架——因为JPA并未提供ORM实现,它只是制订了一些规范,提供了一些编程的API接口,但具体实现则由服务厂商来提供实现,JBoss应用服务器底层就以Hibernate作为JPA的实现。 既然JPA作为一种规范——也就说JPA规范中提供的只是一些接口,显然接口不能直接拿来使用。虽然应

一个人的博客 3万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Hibernate的JPA

JPA相关概念 JPA概述 全称是:Java Persistence API。是SUN公司推出的一套基于ORM的规范。hibernate框架中提供了JPA的实现。 JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。 JPA的优势 标准化 JPA 是JCP 组织发布的Java EE 标准之一,因此任何声称符合JPA 标准的框架都遵...

weixin_42577116的博客 5929

JPA与Hibernate区别及之间的关系

分享知识 传递快乐 JPA与Hibernate 的区别 JPA和Hibernate之间的最大的区别是: JPA是一个规范,不是框架 Hibernate是JPA的实现 也可以简单的理解为JPA是标准接口,Hibernate是实现。 那么Hibernate是如何实现与JPA的这种关系的呢? Hibernate主要是通过三个组件来实现的,及hibernate-annotation、hi...

旷野历程 7396

Hibernate、JPA、Spring DATA JPA、Hibernate 代理和架构

显然,当您想要从数据库中检索用户时,由于关联的登录历史记录实体,大量数据将付出代价。不幸的是,我们直到面对结果才意识到我们付出了代价,就像在生活中一样。如您所见,我们有实体,每个实体都有自己的存储库,这些存储库已在后台从 JpaRepository 接口扩展。JPA 存储库与 EntityManager 配合使用,它与 Hibernate 配合使用,后者与 JDBC 配合使用。最后,缓存机制是选择 Hibernate 实体缓存的最大原因,它使以数据为中心的应用程序具有高性能,即使应用程序远离数据库。

adminmail的博客 1196

hibernate对JPA_Annotation的支持实例讲解

JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中.JPA是一种规范,而hibernate是JPA的实现,除了hibernate还有EclipseLink也是JPA的实现.JPA 是 JCP 组织发布的 Java EE 标准之一,因此任何声称符合 JPA 标准的框架都遵循同样的架构,提供相同的访问

陈晓婵 1421

hql实例 jpa_hibernate JPA

hibernate基础配置例子:hibernnate_0100 // hibernate_0100_HelloWorld引入必须jar包hibernate3.jarhibernate-testing.jarantlr-2.7.6.jarcommons-collections-3.1.jarjavassist-3.9.0.jarjta-1.1.jarslf4j-api-1.5.8.jarslf4j-...

weixin_39916549的博客 269

JPA和Hibernate到底是什么关系

JPA和Hibernate到底是什么关系???

m0_73533108的博客 1953

JPA和Hibernate到底是什么关系???

(文章借用了其他几篇博客中的内容,因为是初学者,许多概念性的关系自己不能完全理解,就将大神的搬了过来,如有不当,可留言,本人自会妥善处理,谢谢) 在学习框架的过程中,发现学的东西很多,但是感觉他们之间的联系区别都不是很了解,知道JPA可以去实现持久化数据到数据库当中,Hibernate也有这样的功能,总以为他们之间是一种平级的关系,拥有同样的作用,是一种可以相互替代的关系,就像你吃...

diaoyinyuan2801的博客 1526

学习JPA——Hibernate Annotation使用实例

<br />  目前,JPA(Java Persistence API)的使用范围越来越广,作为Java EE 5.0平台标准的ORM规范,得到了诸如:Hibernate、TopLink、OpenJpa等ORM框架的支持,同时还是EJB 3.0的重要组成部分。JPA的宗旨是为POJO提供持久化标准规范。它能够脱离容器独立运行,方便开发和测试。本文将通过一个小实例来说明如何在Hibernate中使用JPA,来达到简化编程的目的。<br />    开发环境  Eclipse 3.3.1  MyEclipse

阿凯的博客. 1005

Hibernate JPA 快速入门

1、Hibernate JPA简介 1.1、认识 hibernate Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将 POJO与数据库表建立映射关系,是一个全自动的 orm 框架,hibernate 可以自动生成 SQL 语句,自动执行,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。 1.2、认识 JPA JPA的全称:Java Persistence API, 即Java 持久化API,是SUN公司推出的一套基于ORM的规范,

qq_35254085的博客 2243

传智播客jpa学习,jpa整合hibernate

      今天学习jpa,黎活明老师讲的,黎老师讲到,jpa可以简化现有的持久化开发工作和整合ORM技术,他的使用会越来越广。今天主要学习了它的技术原理,开发环境配置。      JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据。他的出现主要是为了简化现有的持久化开发工作和整合O

TuiRoger的专栏 1724
上一篇: Hibernate学习之路(8) Hibernate注解
下一篇: spring学习之路(1) 什么是Spring
QEcode
博客等级 码龄10年 39粉丝 147原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值