大概意思是:

    使用数据源之后也同时使用了tomcat自带的连接池(DBCP):容器的连接池设置了一些准备公用的connection,程序用时拿走用,用完再送回池。这些连接由数据源统一管理维护,避免了每次操作数据库时反复的反射、打开、验证、连接、关闭等过程。

    不用像传统方法http://blog.csdn.net/ruantao1989/article/details/8012005那样,每次都要在新建连接和用完销毁上消耗资源。

    这样,就提高了并发操作数据库时的性能。




一:tomcat\conf\server.xml

<!-- name:虚拟目录下web.xml配置时对应的名称 -->
<!-- auth:Tomcat中固定使用Container(容器) -->
<!-- type:扩展包 -->
<!-- maxActive:提供的最大连接数 -->
<!-- maxidle:提供的最小连接数 -->
<!-- maxWait:等待时间10秒 -->
<!-- driverClassName:oracle驱动 -->
<!-- url:DBURL -->

在虚拟目录的配置中加入<Resource>

			<Context path="/pathDemo" docBase="E:\Java\tomcat_pathDemo" >
				<Resource name="jdbc/rtDBS" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="scott" password="890307" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@localhost:1521:ORCL" />
			</Context>





二:虚拟目录中的web.xml

增加对应的数据源配置

<resource-ref><!-- 数据源配置 -->
	<res-ref-name>jdbc/rtDBS</res-ref-name>
	<res-type>javax.sql.DataSource</res-type>
	<res-auth>Container</res-auth>
</resource-ref>





三:测试jsp

<%@page contentType="text/html" pageEncoding="GBK"%>
<%@page import="java.sql.*"%>
<%@page import="javax.sql.*"%>
<%@page import="javax.naming.*"%>

<body>
<%
	String DSNAME = "java:comp/env/jdbc/rtDBS";//名称之前必须添加java:comp/env/
	Context ctx = new InitialContext();
	DataSource ds = (DataSource)ctx.lookup(DSNAME);
	Connection conn = ds.getConnection();
%>

<%=conn%>

<%
	conn.close();
%>

</body>

名称之前必须添加java:comp/env/,死规矩。不然就会出一个NameNotFound





Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐