本文为原创,如需转载,请注明作者和出处,谢谢!
在前面的文章中使用的都是容器管制的EntityManager对象。这类EntityManager对象是由EJB容器创建的,在这种情况下, EntityManager对象的生命周期完全由EJB容器来管理。在SessionBean中可以使用如下的代码来通知EJB容器创建 EntityManager对象:
- @PersistenceContext(unitName="myentity")
- protectedEntityManagerem;
上面的代码需要放在任意一个SessionBean的类中,EJB容器会自动创建EntityManager对象。但如果要在Servlet中直接访问 EntityManager对象,需要使用EntityManagerFactory接口的createEntityManager方法来创建 EntityManager对象,在使用完EntityManagerFactory和EntityManager对象后,可以使用相应的close方方 关闭这两个对象。在编写Servlet中访问应用程序管制实体Bean之前,需要修改一个persistence.xml文件的内容,修改后的结果如下:
- <?xmlversion="1.0"encoding="UTF-8"?>
- <persistencexmlns="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_1_0.xsd"
- version="1.0">
- <persistence-unitname="myentity"transaction-type="RESOURCE_LOCAL">
- <non-jta-data-source>java:/MyPIM</non-jta-data-source>
- <properties>
- <propertyname="hibernate.hbm2ddl.auto"value="none"/>
- <propertyname="hibernate.dialect"value="org.hibernate.dialect.MySQL5Dialect"/>
- <propertyname="hibernate.format_sql"value="true"/>
- <propertyname="hibernate.show_sql"value="true"/>
- </properties>
- </persistence-unit>
- </persistence>
修改的地方有如下两个:
1. 将<persistence-unit>元素的transaction-type属性值设为RESUORCE_LOCAL。
2, 将<jta-data-source>元素改成<non-jta-data-source>,元素值不变。
要注意,这时不能使用
@PersistenceContext注释通知EJB容器自动创建EntityManager对象了,如果仍然想这样做,可以定义其他的<persistence-unit>元素。
下面是访问EntityManager对象的Servlet代码:
- packageservlet;
- importjava.io.IOException;
- importjavax.persistence.EntityManager;
- importjavax.persistence.EntityManagerFactory;
- importjavax.persistence.Persistence;
- importjavax.persistence.PersistenceContext;
- importjavax.servlet.ServletException;
- importjavax.servlet.http.HttpServlet;
- importjavax.servlet.http.HttpServletRequest;
- importjavax.servlet.http.HttpServletResponse;
- importentity.DateBean;
- publicclassMyServletextendsHttpServlet
- {
- privatestaticfinallongserialVersionUID=1L;
- protectedvoidservice(HttpServletRequestrequest,
- HttpServletResponseresponse)throwsServletException,IOException
- {
- EntityManagerFactoryemf=Persistence.createEntityManagerFactory("myentity");
- EntityManagernewEM=emf.createEntityManager();
- DateBeandb=newEM.find(DateBean.class,1);
- response.getWriter().println(db.getMyDate());
- newEM.close();
- emf.close();
- }
- }
分享到:
相关推荐
EJB应用开发详解
李刚,从事10年的Java EE应用开发。曾任LITEON公司的J2EE技术主管,负责该公司的企业信息平台的架构设计。曾任广州电信、广东龙泉科技等公司的技术培训导师。2007年3月26日的《电脑报》专访人物。现任新东方广州中心...
配置信息:使用JBOSS和MYsql数据库,在MYsql建立一个SSH数据库,然后数据库的名字和密码在jboss里配置一下,最后配置EJB工程内的XML文件,修改为creat-drop即可在项目启动过程中自动建立创建表。
[2] 安装 JBoss EJB3: 16 [3] 第一次启动 JBoss: 18 [4] 安装 Eclipse WTP: 18 [5] 安装 JBoss IDE: 18 [6] 使用 Eclipse 建立第一个 EJB3 Project [ 即 HelloWorld ]: 18 [7] 建立 HelloWorld Stateless ...
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码.part1 其他部分详见我的上传列表,全部分卷下载完成才能解压。 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun...
EJB3开发指南英文版《EJB.3.Developer.Guide》 出版商:PacketPublishing 出版日期:2008年5月 页数:276 简介: 第一章:EJB3体系结构简介 第二章:Session Beans 第三章:实体Entities 第四章:对象关系映射ORM 第...
EJB3开发Entity EJB3开发Entity
《JavaEE实用开发指南:基于Weblogic+EJB3+Struts2+Hibernate+Spring》-- part2/3
经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 part3
EJB3的三本好书第二本,最好的介绍ejb3的书,看过之后,其他的书都送人了,而且附带的源代码,几乎包括了所有的主流应用服务器的例子,glassfish, jboss, weblogic, oracleAS 3本书分别是: 1. Beginning EJB3 ...
jsp+servlet+EJB简单应用开发,实现用户登录和注册
使用oracle的jdeveloper开发的一个EJB应用程序的截图和简述的完整全过程
EJB3的三本好书之三,也很不错的一本ejb3的书籍,是英文版,附带源代码,这本书的好处是与Mastering EJB 3ed有一定的继承性,可以对比来看. 3本书的地址 1. Beginning EJB3 Application Development From Novice to ...
NULL 博文链接:https://looseep.iteye.com/blog/1733874
经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 part2
《EJB 2.0企业级应用程序开发 》
ejb应用开发详解ejb应用开发详解ejb应用开发详解ejb应用开发详解ejb应用开发详解ejb应用开发详解
本书详细介绍了J2EE框架的重要组成部分——EJB及其相关技术...书中的例程对实际的应用开发有非常强的借鉴意义。本书适合于专业和准专业的Java程序员阅读,也可作为正在进行Java开发的各类程序员的必备Java参考书。
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发 PDF 书籍 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun公司提供的JSF RI;EJB 3部分则包含Session Bean、Message ...