关于数据库联接池的问题!
我用的是tomcat4.1.27 数据库用的是Oracle8i。
最近我尝试着在项目中使用数据库联接池,但是老是碰到"关闭的数据库联接","关闭的语句"等错误。但是我从代码里却查不出一点儿毛病,有一个jsp页面我发现只要先执行一个update 语句,再执行一个select语句的话,在while(rs.next){}循环里我用getString等方法的时候就会报告"关闭的语句"错误,但是我决定没有在关闭与当前ResultSet 相关的PreparedStatement;
我的数据库联接池是如下配置的:
tomcat 的server.xml文件中:
<Context path="" docBase="e:/personal/siyi/siyi/javasrc/webdir" debug="0">
<Resource name="jdbc/OracleDB" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/OracleDB">
<parameter>
<name>username</name>
<value>siyi</value>
</parameter>
<parameter>
<name>password</name>
<value>siyi</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@192.168.0.10:1521:oracle</value>
</parameter>
</ResourceParams>
</Context>
获得数据库连接的方法如下:
public static synchronized Connection getConnection()throws Exception{
if(initCtx==null)initCtx = new InitialContext();
if(ctx==null) ctx = (Context) initCtx.lookup("java:comp/env");
//获取连接池对象
Object obj =ctx.lookup("jdbc/OracleDB");
//类型转换
javax.sql.DataSource ds = (javax.sql.DataSource)obj;
Connection con = ds.getConnection();
return con;
}