1. Resin对数据库缓冲池的支持很好。在这里,它提供了DBPool对缓冲池做了封装。实际使用时,只要在resin.conf这样配置:
<dbpool.sql>
<id>ORCL</id>
<driver>oracle.jdbc.driver.OracleDriver</driver>
<url>jdbc:oracle:thin:@localhost:1521:SMTH</url>
<!-- <url>jdbc:oracle:oci8:@SMTH</url> -->
<user>scott</user>
<password>tiger</password>
<max-connections>5</max-connections>
</dbpool.sql>
然后,在你的jsp或者servlet中就可以这样子使用了:
先导入 com.caucho.sql.*包,然后如下直接得到连接:
<%@ page import="java.util.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="com.caucho.sql.*" %>
<%
java.sql.Connection conn = DBPool.getPool("ORCL").getConnection();
%>
2. 按照ejb的方法用从Context中直接找到的DataSource对象中得到连接通用性比较好。
<%@ page import="java.util.*" %>
<%@ page import="java.sql.*" %>
<%@ page import="javax.sql.*" %>
<%@ page import="javax.naming.*" %>
<%
javax.naming.Context ctx = new javax.naming.InitialContext();
javax.sql.DataSource ds = (javax.sql.DataSource)ctx.lookup("java:comp/jdbc/EmployeeDB");
java.sql.Connection conn = ds.getConnection();
java.sql.Statement stmt = conn.createStatement();
String strSql = "select * from yydl";
java.sql.ResultSet rs = stmt.executeQuery(strSql);
while(rs.next()){
out.println(rs.getString(1));
out.println(rs.getString(2));
}
rs.close();
stmt.close();
conn.close();
ctx.close();
%>
在Resin中如下配置jdbc就可以了:
<resource-ref>
<res-ref-name>jdbc/EmployeeDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<init-param driver-name="com.caucho.jdbc.mysql.Driver"/>
<init-param url="jdbc:mysql_caucho://localhost:3306/test"/>
<init-param user="name"/>
<init-param password="password"/>
<init-param max-connections="20"/>
<init-param max-idle-time="30"/>
</resource-ref>