1)添加jar包 tomcat6中 TOMCAT_HOME/lib 下是公用jar包
dbcp需要3个jar包:Jakarta-Commons DBCP,Jakarta-Commons Collections,Jakarta-Commons Pool, 但是tomcat6已经用1个tomcat-dbcp.jar包含了这3个jar包,该包在 TOMCAT_HOME/lib 下,因此在tomcat下不需要再添加dbcp相关的3个包;
将mysql-connector-java-5.1.6-bin.jar 拷贝到 TOMCAT_HOME/lib 下;
2)添加数据源
在 TOMCAT_HOME/conf/context.xml 中 添加数据源:
<Context> <WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="root" password="" driverClassName="com.mysql.jdbc.Driver" </Context> |
3)在web.xml 中引用数据源
<display-name>JNDI Test</display-name> <description>A test for using of JNDI</description>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/test</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
|
4)在jsp(或java)中使用数据源
<sql:query var="rs" dataSource="jdbc/test">
select * from test
</sql:query> <html> <head>
<title>DB Test</title>
</head>
<body>
<h2>Results</h2>
<c:forEach var="row" items="${rs.rows}">
id ${row.id}<br/>
str ${row.str}<br/>
</c:forEach> </body>
</html> |
5)tomcat的jndi实用类
/** * 从数据库连接池获取数据库的链接
*/
public Connection getConnection() {
try {
Context context = new InitialContext();
DataSource ds = (DataSource) context.lookup("java:comp/env/jdbc/oa");
} catch (NamingException e) {
e.printStackTrace();
throw new RuntimeException("jndi 数据源加载失败!");
}
boolean succ = false;<br> Connection conn=null;<br> try {
conn = ds.getConnection();
succ = true;
} catch (SQLException e) {
e.printStackTrace();
System.out.println("connection error");
}
return conn;
}
|