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