使用dbutils获取tomcat数据库连接池

使用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);

相关推荐