3-1Tomcat数据源
1、解决问题:建立数据连接池,提高数据使用效率
2、建立资源池,配置Tomcat下得server.xml
配置mysql数据池
atuh包括Container和application两种方式
配置oracle数据池
在配置serverl.xml之后,需要对web.xml进行配置
<web-appxmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<display-name>Welcome toTomcat</display-name>
<description>
Welcome to Tomcat
</description>
<resource-ref>
<res-ref-name>jdbc/mldn</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
3、数据源的操作通过JDNI进行
步骤:
初始化名称查找上下文 Context ctx = new InitialContext();
通过名称查找DataSource DataSource ds =(DataSource)ctx.lookup(JDNI名称)
通过DataSource获得连接 Connectionconn = ds.getConnection();
<%@ pagecontentType="text/html" pageEncoding="GBK"%>
<%@ pageimport="javax.naming.*"%>
<%@ page import="javax.sql.*"%>
<%@ pageimport="java.sql.*"%>
<html>
<head><title></title></head>
<body>
<%
String DSNAME = "java:comp/env/jdbc/mldn" ; // 名称
Contextctx = new InitialContext() ;
DataSourceds = (DataSource) ctx.lookup(DSNAME) ;
Connectionconn = ds.getConnection() ; // 从连接池中取连接
%>
<%=conn%>
<%
conn.close(); // 表示将连接放回到池之中
%>
</body>
</html>
真正的数据源名称为/jdbc/mldn ,添加java:comp/env是为了JNDI查找解决冲突(Weblogic/WebSphere)可以省略此项
建立数据源后可以使用其作为DAO改进
packagecn.mldn.lxh.dbc ;
importjava.sql.* ;
importjavax.sql.* ;
importjavax.naming.* ;
publicclass DatabaseConnection {
private staticfinal String DSNAME = "java:comp/env/jdbc/mldn" ;
private Connection conn;
publicDatabaseConnection() throws Exception {
Context ctx = newInitialContext() ;
DataSource ds =(DataSource) ctx.lookup(DSNAME) ;
this.conn =ds.getConnection() ;
}
public Connection getConnection(){
return this.conn ;
}
public void close() throws Exception {
if(this.conn != null){
try{
this.conn.close() ;
}catch(Exception e){
throw e ;
}
}
}
}