openJPA1.2.2使用Tomcat6.0.29数据源

本文详细介绍了如何在Tomcat6中配置两种类型的数据源:全局数据源(Systemwide)和特定于Web应用程序的数据源(WebApplicationwide)。通过具体实例展示了如何在context.xml中设置数据源参数,并结合persistence.xml配置了JPA持久化单元。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Tomcat6.0.29的数据源有2种

1. System wide:在tomcat里的所有webapp都可以使用
全局的数据源,要配置 %TOMCAT_HOME%/conf/context.xml,同时要把数据库的jdbc驱动,拷贝到%TOMCAT_HOME%/lib下面.
2. WebApplication wide:只有指定的webapp可以使用
web应用数据源,要配置 你的项目下的 META-INF/context.xml,同时拷贝到驱动到项目下的WEB-INF/lib下

下面是具体的配置文件,不做过多的解释(2种方式)
persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.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_1_0.xsd">
<persistence-unit name="MyJPA" transaction-type="RESOURCE_LOCAL">
<description>测试openjpa</description>
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<non-jta-data-source>java:comp/env/jdbc/net</non-jta-data-source>
<class>entity.Animal</class>
</persistence-unit>
</persistence>
<!--
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.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_1_0.xsd">
<persistence-unit name="MyJPA" transaction-type="RESOURCE_LOCAL">
<description>测试openjpa</description>
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<class>entity.Animal</class>
<properties>
<property name="openjpa.jdbc.DBDictionary" value="mysql" />
<property name="openjpa.ConnectionFactoryName" value="java:comp/env/jdbc/MyDataSource" />
<property name="openjpa.Log" value="log4j" />
</properties>
</persistence-unit>
</persistence>
-->

context.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
name="jdbc/net"
type="javax.sql.DataSource"
maxActive="5"
maxIdle="5"
maxWait="5000"
username="root"
password="root"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.64.2/test"
/>
</Context>

Index.jsp----其中,前半部分为测试访问jndi数据源代码,后半部分为使用jpa的代码
<%@ page language="java" contentType="text/html; charset=utf8"
pageEncoding="utf8"%>
<%@ page import="java.util.*"%>
<%@ page import="javax.persistence.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>

<%@ page import="entity.*"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
<title>Insert title here</title>
</head>
<body>
<%!
final String JNDINAME = "java:comp/env/jdbc/net" ;
%>
<%
Connection conn = null ;
try
{
Context ctx = new InitialContext() ;
DataSource ds = (DataSource)ctx.lookup(JNDINAME) ;
conn = ds.getConnection() ;
}
catch(Exception e)
{
System.out.println(e) ;
}
out.write(conn.toString());
conn.close() ;


EntityManagerFactory emf = Persistence.createEntityManagerFactory("MyJPA");
EntityManager em = emf.createEntityManager();
Query query = em.createQuery("select a from Animal a");
List<Animal> results = query.getResultList();
for (int i =0;i<results.size();i++) {
Animal animal = results.get(i);
out.write(animal.getName()+"<br/>");
}
%>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值