JavaEE5学习笔记08-JPA与EJB集成总结(4)

1.       JavaEE容器中使用JPA和不在JavaEE容器中使用JPA的区别

1):首先在JavaEE容器中使用JPA不必在自己的项目中再加入JPA实现的jar包了,因为在应用服务器中已经含有实现JPA标准的jar包了,所以您的项目不必加入了。而如果项目不是在JavaEE容器中跑的话(比如轻量级的Spring+JPA+Hibernate实现),就得自己加入JPA实现的jar包了。

2):第二个就是/META-INF/persistence.xml文件的书写,在JavaEE容器中运行的项目不必显示的写出JPA的实现者——provider,因为在使用应用服务器的过程中,服务器底层已经自己默认使用了某些框架实现了JPA标准。当然,一些特殊属性——property为了运行时环境的移植性,一般在开发阶段不会指定实现者的特殊属性。除非项目的需求已经决定了,应用服务器不会发生变动,想让JPA执行的更有效率,而且开发人员本身已经十分清楚该应用服务器底层的JPA实现框架,指定property属性也是可以的。

3):事务的类型,一般在JavaEE容器中执行事务类型为JTA,到写代码的时候再确定到底是CMT还是BMT。如果在其他容器,比如Spring管理的时候,通常会采用RESOURCE_LOCAL,将事务交给Spring这个本地的局部容器去管理事务。

以下是2种情况的persistence.xml文件内容

JavaEE容器实现JPA

<?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_1_0.xsd"

    version="1.0">

 

    <persistence-unit name="JavaEE4JbossPU"

       transaction-type="JTA">

       <jta-data-source>java:/jbossdemo</jta-data-source>

       <class>jpa.vo.Person</class>

    </persistence-unit>

 

</persistence>

JavaEE容器实现JPA

<?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_1_0.xsd"

    version="1.0">

 

    <persistence-unit name="ApplicationNewWebPU"

       transaction-type="RESOURCE_LOCAL">

       <provider>org.hibernate.ejb.HibernatePersistence</provider>

       <properties>

           <!--不用Spring的数据源连接池的时候打开以下代码-->

           <!--

              <property name="hibernate.connection.driver_class"

              value="com.mysql.jdbc.Driver" /> <property

              name="hibernate.connection.url"

              value="jdbc:mysql://127.0.0.1:3306/ejbjpa" /> <property

              name="hibernate.connection.username" value="root" /> <property

              name="hibernate.connection.password" value="root" />

           -->

 

           <!-- Hibernate 方言(只有Hibernate 才需要设置) -->

           <property name="hibernate.dialect"

              value="org.hibernate.dialect.MySQLDialect" />

           <!-- Hibernate 显示调试 SQL -->

           <property name="hibernate.show_sql" value="true" />

           <!-- Hibernate 缓存设置(默认可不设置) -->

           <!--

              <property name="hibernate.cache.provider_class"

              value="org.hibernate.cache.NoCacheProvider" />

           -->

           <!-- Hibernate 格式化sql -->

           <property name="hibernate.format_sql" value="true" />

           <property name="hibernate.hbm2ddl.auto" value="update" />

       </properties>

    </persistence-unit>

</persistence>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaEE学习笔记是我自己在学习过程中总结的javaweb各项技术和知识点。它包含了JavaEE的十三种核心技术,分别是JDBC、JNDI、EJB、RMI、Servlet、JSP、XML、JMS、Java IDL、JTS、JTA、JavaMail和JAF。 JavaEE是一个开放的标准的组件体系结构,它独立于平台,但使用Java语言。一个JavaBean是一个满足JavaBeans规范的Java类,通常定义了一个现实世界的事物或概念。一个JavaBean的主要特征包括属性、方法和事件。 在支持JavaBeans规范的开发环境中,可以可视地操作JavaBean,也可以使用JavaBean构造出新的JavaBean。JavaBean的优势还在于Java带来的可移植性。所以在JavaEE学习笔记中,你可以找到关于这些核心技术和JavaBean的详细内容和示例。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [javaEE学习笔记](https://download.csdn.net/download/sugar_map/10268742)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [JavaEE学习笔记整理](https://blog.csdn.net/qq_51861704/article/details/124133294)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值