Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用tomcat';s与JPA的连接池_Tomcat_Jpa - Fatal编程技术网

使用tomcat';s与JPA的连接池

使用tomcat';s与JPA的连接池,tomcat,jpa,Tomcat,Jpa,我想在tomcat上运行的web应用程序中使用连接池和JPA/TopLink;要以这种方式使用连接池,我只需在context.xml中声明资源并在应用程序中获取此资源: Context c = new InitialContext(); DataSource source = (DataSource) ((Context)c.lookup("java:comp/env")).lookup("jdbc/MySource"); 现在我想在JPA中使用这种连接池。我该怎么做 还有一个问题:我在一些示

我想在tomcat上运行的web应用程序中使用连接池和JPA/TopLink;要以这种方式使用连接池,我只需在context.xml中声明资源并在应用程序中获取此资源:

Context c = new InitialContext();
DataSource source = (DataSource) ((Context)c.lookup("java:comp/env")).lookup("jdbc/MySource");
现在我想在JPA中使用这种连接池。我该怎么做

还有一个问题:我在一些示例中看到,reSurce在context.xml中声明,然后在的web.xml中声明。为什么我要在不同的地方声明它,或者它是同一个声明,我的意思是它是context.xml中声明的等价物吗

现在我想在JPA中使用这种连接池。我该怎么做

假设您已经在
context.xml
中声明了由
创建的连接池数据源,那么您只需要在webapp的
/META-INF/persistence.xml
中声明JPA的数据源用法

<persistence-unit name="YourPersistenceUnit" transaction-type="JTA">
    <jta-data-source>jdbc/MySource</jta-data-source>
</persistence-unit>

jdbc/MySource

还有一个问题:我在一些示例中看到,在
context.xml
中声明了reosurce,然后在
web.xml
中声明了它。为什么我要在不同的地方声明它,或者它是同一个声明,我的意思是它是
context.xml
中声明的等价物吗


context.xml中的
定义了servletcontainer创建数据源的。它可以被多个Web应用程序使用。
web.xml
中的
定义了特定webapp对数据源的使用情况。注意:使用JPA时,您不需要
web.xml
中的JPA。它进入了
persistence.xml

,因此,如果我在context.xml中定义,而不是在web.xml中定义,那么我是否能够使用池连接,或者每次从db获取数据时它只是创建新连接?Tomcat数据源默认使用内置DBCP数据源,它已经是一个连接池了。但是,您可以通过更改
中的
工厂
参数来更改它,另请参见@BalusC我们如何从数据源获取Entitymanager……因为我听说我们不能在tomcat中使用JPA进行连接池,因为它不是JEE服务器,我正在使用JPA utill类获取Entitymanager…:)
<persistence-unit name="YourPersistenceUnit" transaction-type="JTA">
    <jta-data-source>jdbc/MySource</jta-data-source>
</persistence-unit>