找回密码
 注册
搜索
热搜: 回贴

使用tomcat5.0自带的连接池

2009-12-22 00:18| 发布者: admin| 查看: 85| 评论: 0|原作者: 江海

近来对连接池产生了兴趣,就自己动手试了试,本以为自己写的连接池没有问题,结果和同学交流,他说我虽然写了连接池,可是在编程时并没有用到,本人比较懒,所以就没有修改,想直接使用tomcat的连接池就好.
首先修改server.xml文件:




factory
org.apache.commons.dbcp.BasicDataSourceFactory


driverClassName
sun.jdbc.odbc.JdbcOdbcDriver


url
jdbc:odbc:patent


username



password



maxActive
20


maxIdle
10


maxWait
-1



原以为用access还要下载驱动程序,其实自带了,害得我还上网找了好久,因为SQL就需要自己去下载数据库驱动.
修改完配置文件,就可以使用连接池进行数据库操作了,自己写了个bean,使用起来能方便些:
package sql;
import javax.naming.Context;
import javax.sql.DataSource;
import javax.naming.InitialContext;
import java.sql.*;
import javax.sql.*;
public class DBPool
{
DataSource ds = null;
Connection conn = null;
ResultSet rs = null;
Statement stmt=null;
public DBPool(){
try
{
Context initCtx = new InitialContext();
Context envCtx = (Context)initCtx.lookup("java:comp/env");
ds = (DataSource)envCtx.lookup("jdbc/access");
conn=ds.getConnection();
stmt=conn.createStatement();
}
catch (SQLException e)
{
System.err.println("DB SQL error:"+e.getMessage());
}
catch(Exception e){
System.err.println("DBPool():"+e.getMessage());
}
}

public boolean executeUpdate(String sql){
try
{
stmt.executeUpdate(sql);
return true;
}
catch (SQLException e)
{
System.err.println("executeUpdate:"+e.getMessage());
}
return false;
}

public ResultSet executeQuery(String sql){
rs=null;
try
{
rs=stmt.executeQuery(sql);
}
catch (SQLException ex)
{
System.err.println("executeQuery:"+ex.getMessage());
}
return rs;
}
public void close(){
try
{
rs.close();
stmt.close();
conn.close();
}
catch (Exception e)
{
System.out.println(e.toString());
}
}
}
编译通过就可以使用了,做个页面测试一下:
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>




Untitled Document








<%
ResultSet rs = null;
rs = data.executeQuery("select tittle,publictime from news");
while(rs.next()){
String tittle=rs.getString("tittle");
String ptime=rs.getString("publictime");
%>




<%
}
%>
标 题 发布时间
<%=tittle%> <%=ptime.substring(0,10)%>



<%
data.close();
%>
页面正常显示,通过!!心情舒畅,回去继续改我自己写的连接池,呼呼!!!

最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 23:38 , Processed in 0.319952 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部