JSP复习笔记——第10章 连接数据库 之 使用数据源

原创
2014/12/18 09:38
阅读数 26


JDBC基本操作过程:
 打开数据库连接
 操作数据库
 关闭数据库


为了解决不必要的资源,使用数据源来减少数据库打开和关闭的操作
1、 通过Connection Pool 管理数据库连接
2、 通过DataSource去管理Connection Pool
3、 DataSource被JNDI Tree绑定

改如何在服务器上对DataSource进行配置
服务器:Tomcat5.x

<Context path="/test" docBase="f:\testweb\"
		debug="5" reloadable="true" crossContext="true">
 
	 <Logger className="org.apache.catalina.logger.FileLogger"
				 prefix="localhost_MysqlTest_log." suffix=".txt"
				 timestamp="true"/>
				 
	<Resource name="名字"  auth="Container" type="javax.sql.DataSource"/>
	
	<ResourceParams name="名字">
		<parameter>
			<name>factory</name>
			<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
		</parameter>
		<parameter>
			<name>maxActive</name> // 最大连接数
			<value>100</value>
		</parameter>
		<parameter>
			<name>maxIdle</name> // 最大维持数
			<value>30</value>
		</parameter>
		<parameter>
			<name>maxWait</name> // 最大等待时间
			<value>5000</value>
		</parameter>
		<parameter>
			<name>username</name>
			<value>用户名</value>
		</parameter>
		<parameter>
			<name>password</name>
			<value>密码</value>
		</parameter>
		<parameter>
			<name>driverClassName</name>
			<value>驱动程序</value>
		</parameter>
		<parameter>
			<name>url</name>
			<value>连接地址</value>
		</parameter>
	  </ResourceParams>
	</Context>
<Context path="/test" docBase="f:\testweb\"
		debug="5" reloadable="true" crossContext="true">
 
<Logger className="org.apache.catalina.logger.FileLogger"
		prefix="localhost_MysqlTest_log." suffix=".txt"
	        timestamp="true"/>
				 
<Resource name="jdbc/sky"  auth="Container" type="javax.sql.DataSource"/>
	
<ResourceParams name="jdbc/sky">
		<parameter>
			<name>factory</name>
			<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
		</parameter>
		<parameter>
			<name>maxActive</name>
			<value>100</value>
		</parameter>
		<parameter>
			<name>maxIdle</name>
			<value>30</value>
		</parameter>
		<parameter>
			<name>maxWait</name>
			<value>5000</value>
		</parameter>
		<parameter>
			<name>username</name>
			<value>scott</value>
		</parameter>
		<parameter>
			<name>password</name>
			<value>darkness</value>
		</parameter>
		<parameter>
			<name>driverClassName</name>
			<value>oracle.jdbc.driver.OracleDriver</value>
		</parameter>
		<parameter>
			<name>url</name>
			<value>jdbc:oracle:thin:@localhost:1521:sky</value>
		</parameter>
</ResourceParams>
</Context>


配置完成需要通过名称查找的方式,找到数据源

<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%!
	final String JNDINAME = "java:comp/env/jdbc/sky" ;
%>
<%
	Connection conn = null ;
	try {
		// 初始化查找命名空间
		Context ctx = new InitialContext() ;
		// 找到DataSource
		DataSource ds = (DataSource)ctx.lookup(JNDINAME) ;
		conn = ds.getConnection() ;
	} catch(Exception e) {
		System.out.println(e) ;
	}
%>
<%=conn%>
<%
	// 将连接重新放回到池中
	conn.close() ;
%>


展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部