编程语言
首页 > 编程语言> > java – 了解JPA中的Persistence.xml

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