bleach00 2010-04-21
使用dbutils获取tomcat数据库连接池
j2se2009-06-2623:51:50阅读225评论1
字号:大中小
1、首先要将mysql的驱动包放在tomcat/lib目录下
2、在myeclipse工程目录下的webroot/META-INF下新建一个context.xml文件,内容如下:
<Context>
<!--这里是mysql的连接池设置-->
<Resource
name="jdbc/mysqlds"
auth="Container"
type="javax.sql.DataSource"
driverClassname="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1/blog"
username="root"
password="root"
maxActive="100"
maxIdle="30"
maxWait="10000"/>
<!--这里是oracle的连接池设置-->
<Resourcename="jdbc/oracleds"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="scott"
password="tiger"
driverClassname="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>
</Context>
3、在需要用连接池的地方使用如下:
mysql下使用连接池:
Contextctx=newInitialContext();
DataSourceds=(DataSource)ctx.lookup("java:comp/env/jdbc/mysqlds");
Connectionconn=ds.getConnection();
oracle下使用连接池:
Contextctx=newInitialContext();
DataSourceds=(DataSource)ctx.lookup("java:comp/env/jdbc/oracleds");
Connectionconn=ds.getConnection();
dbutils是一个开源的对JDBC进行封装的组件,简化了对JDBC的操作。
首先当然是到官方网站上把源码下载下来,http://commons.apache.org/dbutils/
然后解压后,把commons-dbutils.jar放在工程名称/WebRoot/WEB-INF/lib目录下,就可直接使用了。
以下是使用dbutils获取QueryRnner的代码DbHelper.java:
packagecom.xie.dbutils;
importjavax.naming.Context;
importjavax.naming.InitialContext;
importjavax.sql.DataSource;
importorg.apache.commons.dbutils.QueryRunner;
publicclassDbHelper{
publicstaticQueryRunnergetQueryRunner(){
DataSourceds=null;
try{
Contextcontext=newInitialContext();
ds=(DataSource)context.lookup("java:/comp/env/jdbc/oracleds");
//System.out.println("oracle连接池成功");
}catch(Exceptione){
System.out.println("oracle连接池失败");
}
QueryRunnerqr=newQueryRunner(ds);
returnqr;
}
}
查询就直接使用QueryRunner里的query();方法就可以了,其它的增删改就直接用QueryRunner里的update();方法就行了。
如下是查询的示例:
Stringsql="selectempno,ename,job,mgr,hiredate,sal,comm,deptnofromemp";
QueryRunnerqr=DbHelper.getQueryRunner();
Listlist=(List)qr.query(sql,newBeanListHandler(Emp.class));
如下是删除的示例:
Stringid=request.getParameter("id");
Stringsql="deletefromcommentwhereid="+id;
QueryRunnerqr=DbHelper.getQueryRunner();
qr.update(sql);
如下是修改的示例:
Stringid=request.getParameter("id");
Stringusername=request.getParameter("name");
Stringcontent=request.getParameter("content");
Stringsql="updatecommentsetusername=?,content=?whereid=?";
Stringparams[]={username,content,id};
QueryRunnerqr=DbHelper.getQueryRunner();
qr.update(sql,params);
如下是增加的示例
Stringname=request.getParameter("name");
Stringcontent=request.getParameter("content");
Stringblog_id=request.getParameter("blog_id");
if(name==null||name.equals("")){
name="匿名";
}
Stringsql="insertintocomment(username,content,blog_id,createdtime)values(?,?,?,now())";
Stringparams[]={name,content,blog_id};
QueryRunnerqr=DbHelper.getQueryRunner();
qr.update(sql,params);