jpa 参数,jpa常用方法
目录
JPA的参数传递方法:第一个和第二个。谈谈JPA的优缺点:1。对JPA的理解:2。理解和总结JPA实体的生命周期:3。为什么使用JPA?
JPA传递参数的方法
00-1010/* * *按年龄查询数据。*使用@Query配置您自己定义的SQL。以下参数nativeQuery=true表示使用本机SQL。*如果未配置,默认为false,则将使用HQL查询方法。* * @ Param age * @ return */@ Query(value= select * from t _ user where t _ age : age ,native Query=true)ListUserEntity listeagemorethan(@ Param( age )Integer age);}
第一种
@ Query(value= select * from t _ user where t _ age?1 ,native query=true)ListUserEntity listeamorethan(整数年龄);
第二种
00-1010JPA的总体思路与现有的ORM框架如hibernate、TopLink、JDO大体一致。一般来说,JPA包括以下三种技术:
映射ORM元数据,JPA支持XML和JDK 5.0注释。元数据描述了对象和表之间的映射关系,框架将实体对象持久化到数据库表中。
JPA的API用于操作实体对象和执行CRUD操作。该框架在后台为我们做一切,开发人员从繁琐的JDBC和SQL代码中解放出来。
查询语言是持久化操作的一个重要方面,它通过面向对象而不是面向数据库的查询语言来查询数据,以避免程序的SQL语句的紧密耦合。
00-1010新:瞬时对象,还没有id,也没有与持久性上下文关联。托管:id值为的持久性托管对象,已与持久性上下文相关联。data ched:id值为的空闲脱机对象,但没有与持久性上下文关联的对象。已删除:已删除的对象具有id值,并且与持久性上下文相关,但它准备从数据库中删除处于受管状态的数据。只有在提交事务或em.flush()时,数据才不会立即更新到数据库中。数据缓存状态,您可以调用em.merge()方法,该方法将根据实体类的id更新数据库数据。此时,实体类变成托管的。
00-1010在说为什么要用JPA之前,我们有必要了解一下为什么要用ORM技术。
ORM是Object-Relation-Mapping,即对象关系映射技术,是对象持久化的核心。ORM是JDBC的封装,从而解决了JDBC存在的各种问题:
繁琐的代码问题
使用JDBC API编程访问数据库需要大量的代码,尤其是在访问字段较多的表时,代码繁琐、繁琐且容易出错。示例:preparedStatementPSTMT=con . prepare station("插入帐户值(???)");
ORM建立了Java对象和数据库对象的映射关系,程序员可以直接操作Java对象,无需编写复杂的SQL语句,从而大大减少了代码量,使程序员更专注于业务逻辑的实现。
数据库对象连接问题
数据对象之间存在各种关系,包括一对一、一对多、多对一、多对多、级联等。在更新数据库对象时,采用JDBC编程,必须非常小心地处理这些关系,以确保维护这些关系时不会出错,这是一个费时费力的过程。
在建立ORM Java对象和数据库对象之间的关系的同时,还根据数据库对象之间的关系自动创建Java对象之间的关系,并提出
供了维持这些关系完整、有效的机制。
系统架构问题
JDBC属于数据访问层,但是使用JDBC编程时,必须知道后台是用什么数据库、有哪些表、各个表有有哪些字段、各个字段的类型是什么、表与表之间什么关系、创建了什么索引等等与后台数据库相关的详细信息。
使用ORM技术,可以将数据库层完全隐蔽,呈献给程序员的只有Java的对象,程序员只需要根据业务逻辑的需要调用Java对象的Getter和 Setter方法,即可实现对后台数据库的操作,程序员不必知道后台采用什么数据库、有哪些表、有什么字段、表与表之间有什么关系。
性能问题
采用JDBC编程,在很多时候存在效率低下的问题。例如程序将向后台数据库发送1000次SQL语句执行请求,运行效率较低。
采用ORM技术,ORM框架将根据具体数据库操作需要,会自动延迟向后台数据库发送SQL请求,ORM也可以根据实际情况,将数据库访问操作合成,尽量减少不必要的数据库操作请求。
JPA的作用
JPA的英文全称是Java PersistenceAPI, 目的是给Java开发者提供对象关系映射工具用于在Java应用程序开发中来管理关系数据(RDBMS)。如下特点:
标准化
JPA 是 JCP 组织发布的 Java EE 标准之一,因此任何声称符合 JPA 标准的框架都遵循同样的架构,提供相同的访问 API,这保证了基于JPA开发的企业应用能够经过少量的修改就能够在不同的JPA框架下运行。
对容器级特性的支持
JPA 框架中支持大数据集、事务、并发等容器级事务,这使得 JPA 超越了简单持久化框架的局限,在企业应用发挥更大的作用。
简单易用,集成方便
JPA的主要目标之一就是提供更加简单的编程模型:在JPA框架下创建实体和创建Java 类一样简单,没有任何的约束和限制,只需要使用 javax.persistence.Entity进行注释;JPA的框架和接口也都非常简单,没有太多特别的规则和设计模式的要求,开发者可以很容易的 掌握。JPA基于非侵入式原则设计,因此可以很容易的和其它框架或者容器集成。
可媲美JDBC的查询能力
JPA的查询语言是面向对象而非面向数据库的,它以面向对象的自然语法构造查询语句,可以看成 是Hibernate HQL的等价物。JPA定义了独特的JPQL(Java Persistence Query Language),JPQL是EJB QL的一种扩展,它是针对实体的一种查询语言,操作对象是实体,而不是关系数据库的表,而且能够支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能够提供的高级查询特性,甚至还能够支持子查询。
支持面向对象的高级特性
JPA 中能够支持面向对象的高级特性,如类之间的继承、多态和类之间的复杂关系,这样的支持能够让开发者最大限度的使用面向对象的模型设计企业应用,而不需要自行处理这些特性在关系数据库的持久化。
JPA优势
可持久化Java对象。JPA能够直接持久化复杂的Java对象,并能够使用JPQL语言进行复杂的查询。JPQL是JPA专用的查询语言,是类似于SQL的面向对象的查询语言。
使用简单。JPA使用注释(Annotation)定义Java对象与关系数据库之间的映射,而传统的ORM多使用xml配置文件。JPA使用起来比ORM要方便。使用JPA不用关注底层使用什么数据库。
规范标准化。JPA是JCP组织发布的,是Java官方规定的统一的API。目前已经有多种框架实现JPA标准。使用了JPA的系统可以自由选择遵循JPA标准的框架,并能够自由更换。
事务性、大数据量。JPA底层使用关系数据库进行存储,因此具备关系数据库的特点,例如事务性、数据完整性、并发访问、大数据量等。
与其他持久化技术相比,JPA有很大的技术优势。表列出了JPA与其他持久化技术的比较。
JPA的劣势
由于非常新,JPA 规范可能还需要进过重要发展才会变得很稳定。
JPA 是一个规范而不是一个产品。需要提供商提供一个实施,才能获得这些基于标准的 API 的优势。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持盛行IT。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。