java – 了解JPA中的Persistence.xml
作者:互联网
我想了解以下事项:
当我创建EJB项目并将其部署到Glassfish时,我是否在Glassfish的管理员中心设置了JDBC资源/连接池,还是在persistence.xml中添加了用户名,密码等所有不同的属性?我不明白这一点.
我不明白为什么我们同时拥有JDBC资源和JDBC连接池.它是什么,它们之间有什么区别?有人可以解释我这些事情或/并提供一些关于persistence.xml文件及其周围部分的良好链接吗?
解决方法:
最好定义JDBC资源,而不是将信息放在persistence.xml中.通过这种方式,您将利用连接池.您将在persistence.xml中定义为JDBC资源提供的JNDI名称.
What is it and what is the difference between them
下面我粘贴了Glassfish 3.x帮助的一些部分.看看这个.这真的很有帮助
JDBC连接池
JDBC连接池包含在注册连接池时创建的一组JDBC连接
JDBC资源
Java数据库连接(JDBC)资源(数据源)为应用程序提供了连接数据库的方法.通常,管理员为域中部署的应用程序访问的每个数据库创建JDBC资源;但是,可以为数据库创建多个JDBC资源.
应用程序通过在Java命名和目录接口(JNDI)API树上查找数据源,然后请求连接,从连接池获取数据库连接.与数据源关联的连接池提供与应用程序的连接.
将数据源(JDBC)资源视为某种类型的数据服务(连接池)的外观的工厂.在这种情况下,它隐式地从池中获取连接并将其提供给您的应用程序.
persistence.xml示例:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" 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">
<persistence-unit name="WebApplication2PU" transaction-type="JTA">
<jta-data-source>jdbc/sample</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties/>
</persistence-unit>
</persistence>
这一行是我给我的JDBC资源的JNDI名称:
<jta-data-source>jdbc/sample</jta-data-source>
您不需要以这种方式在persistence.xml中定义与数据库连接相关的任何内容……只需要资源的JNDI名称
标签:java,jpa,java-ee,ejb,persistence-xml 来源: https://codeday.me/bug/20190621/1252816.html