大庆建设网站,营销网站建设818gx,wordpress积分代码,高港做网站目录
■前言
■实现原理#xff1a;容器管理事务
■代码实现简单描述#xff1a;
1.JPA
■定义
■1.1.配置文件
■1.2.OSS jar
■1.3.一些OPA的类#xff08;举例#xff09;
■1.4. jpa 框架在实体类#xff08;Entity#xff09;中添加非数据库字段的属性--…目录
■前言
■实现原理容器管理事务
■代码实现简单描述
1.JPA
■定义
■1.1.配置文件
■1.2.OSS jar
■1.3.一些OPA的类举例
■1.4. jpa 框架在实体类Entity中添加非数据库字段的属性---Transient
■1.5. JPA 原生配置
■1.6. EntityManager 管理事务
■1.7.ORM框架
■1.8.javax.persistence
■1.9.transaction-type
■1.10.JTA 与 RESOURCE_LOCAL 之间的区别
2.EJB-事务管理
2.1.EJB默认事物
2.2.EJB的事务管理分如下两个方面
2.3.容器管理事务 ■前言
看了一段业务对于的处理代码
代码里面没有任何事物处理的相关处理
却实现了事物功能。
■实现原理容器管理事务
容器管理事务主要是通过容器自动控制事务的开启提交和回滚开发人员不需要手工编写代码由容器来控制事务的边界一般来说是业务方法的开始
■代码实现简单描述
・ 代码部署在WebSphere上
・数据库处理在Service层中在Sevice层中有多个对数据库的操作。
・是使用JPA ORM实现数据库操作的。可以实现回滚功能。
・有关于JPA的配置文件 WEB-INF/classes/META-INF/persistence.xml
・JPA的配置文件中管理事务管理方式是JTA即是由应用程序服务器的实现事物管理。
・ service层中使用了一个EJB的标签Stateless。 1.JPA
jpa详解_java菜鸟1的博客-CSDN博客
■定义
JPAJava Persistence API和JDBC类似也是官方定义的一组接口但是它相比传统的JDBC它是为了实现ORM而生的即Object-Relationl Mapping它的作用是在关系型数据库和对象之间形成一个映射这样我们在具体的操作数据库的时候就不需要再去和复杂的SQL语句打交道只要像平时操作对象一样操作它就可以了。 ■1.1.配置文件
persistence.xml // JPA persistence.xml
JPA persistence.xml 文件初学者指南_allway2的博客-CSDN博客_persistence.xml
persistence.xml在下面这个目录中 WEB-INF/classes/META-INF■1.2.OSS jar
org.eclipse.persistence.jpa
java - 我对Maven依赖感到困惑:“org.eclipse.persistence.jpa”和“org.hibernate” | persistence
■1.3.一些OPA的类举例
javax.persistence.PersistenceContext 所属jar javax.persistence-2.x.x.jar
■1.4. jpa 框架在实体类Entity中添加非数据库字段的属性---Transient
问jpa表实体的字段和表的字段是一一对应的。比如那么如果我在查询时想在表字段的基础上添加几个返回的字段怎么办 解在实体类中添加我们想添加的字段并加上注解Transient Transient
privite String userId; 效果这样在调用此类返回时便有了此字段我们可以给这个字段赋值进行操作而且不会在数据库中添加这个字段。
■1.5. JPA 原生配置
JPA原生配置和使用_Chgl16的博客-CSDN博客
■1.6. EntityManager 管理事务 import javax.persistence.EntityManager;
import javax.persistence.Persistence;public class EMUtil {public static EntityManager getEM() {return Persistence.createEntityManagerFactory(hotel).createEntityManager();}
}import javax.persistence.EntityManager;
import javax.persistence.Persistence;
import javax.persistence.Query; ---- public void insertMember(Member member) {em.getTransaction().begin();em.persist(member);em.getTransaction().commit();// 仅仅一个数据库连接就不关了
// em.close();
} ---- import javax.persistence.*;Entity
Table(name member)
public class Member {IdGeneratedValue(strategy GenerationType.IDENTITY)private int id;private String phone;private String identity;private String username;private String password;/** getter and setter **/
}----
■1.7.ORM框架
JPA(Java Persistence API), JPA是一个ORM的标准规范而不是一个具体的ORM框架 ( ORMobject relation mapping 对象关系映射关系 面向对象的对象模型和关系型数据之间的相互转换。)
介绍几种ORM框架_火腿编程的博客-CSDN博客
・Hibernate: Hibernate是一个全自动的ORM模型Hibernate可以自动生成SQL语句自动执行。 ・MyBatisMyBatis是一款半自动的ORM模型它支持定制化 SQL、存储过程及高级映射。 ・【javax.persistence-2.x.x.jar】或【javaee-web-api-7.0.jar】中的接口类 javax.persistence.Query和javax.persistence.EntityManager都是JAP发布的接口是用于对象持久化API。 使用[em.createNativeQuery(sql);]创建Query ■1.8.javax.persistence
javax.persistence.Persistence - JPA class
■1.9.transaction-type JPA 事务策略它可以采用以下两个值之一 ・JTA ・RESOURCE_LOCAL
如果您使用的是 JTA您可以使用jta-data-source为关联的 JTA 指定 JNDI 名称DataSource 而对于RESOURCE_LOCAL您需要使用non-jta-data-source.
■1.10.JTA 与 RESOURCE_LOCAL 之间的区别
JPA实现可以选择自己管理事务(RESOURCE_LOCAL)还是由应用程序服务器的JTA实现对其进行管理。
在大多数情况下RESOURCE_LOCAL可以。这将使用基本的JDBC级事务。缺点是该事务对于JPA持久性单元而言是本地的因此如果您想要一个跨多个持久性单元(或其他数据库)的事务则RESOURCE_LOCAL可能不够好。
JTA还用于跨JMS和JCA之类的系统管理事务但这对我们大多数人来说是相当奇特的用法。
要使用JTA您需要在应用程序服务器中对其进行支持并且还需要JDBC驱动程序的支持 2.EJB-事务管理
2.1.EJB默认事物
EJB--事务管理 ._51CTO博客_ejb服务
TransactionManagement(TransactionManagementType.CONTAINER)
表示指定事务的类型。如果省略默认为CMT方式。 import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.ejb.TransactionManagement;
import javax.ejb.TransactionManagementType;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;Stateless(name UserManager)
Remote
TransactionManagement(TransactionManagementType.CONTAINER)
public class UserManagerBean implements UserManager {PersistenceContextprivate EntityManager em ;TransactionAttribute(TransactionAttributeType.REQUIRED)public void addUser(String name) {User s new User();s.setName(name);em.persist(s);System.out.println(服务器端执行成功:保存姓名 name);}} 2.2.EJB的事务管理分如下两个方面
1、CMT容器管理事务默认 2、BMTBean管理事务
EJB事务控制CMT和BMT两种方式以及JTA事务 - 姜师爷闯世界 - 博客园
2.3.容器管理事务
容器管理事务主要是通过容器自动控制事务的开启提交和回滚开发人员不需要手工编写代码由容器来控制事务的边界一般来说是业务方法的开始 15.