運用dbutils獲取tomcat數據庫鏈接池

一、首先要將mysql的驅動包放在tomcat/lib目錄下

二、在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的鏈接池設置-->

<Resource name="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>

三、在須要用鏈接池的地方使用以下:

mysql下使用鏈接池:   

Context ctx = new InitialContext();
   DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/mysqlds");
   Connection conn = ds.getConnection();

oracle下使用鏈接池:   

Context ctx = new InitialContext();
   DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/oracleds");
   Connection conn = ds.getConnection();



dbutils是一個開源的對JDBC進行封裝的組件,簡化了對JDBC的操做。

首先固然是到官方網站上把源碼下載下來,http://commons.apache.org/dbutils/

而後解壓後,把commons-dbutils.jar放在工程名稱/WebRoot/WEB-INF/lib目錄下,就可直接使用了。

如下是使用dbutils獲取QueryRnner的代碼DbHelper.java:

package com.xie.dbutils;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;

import org.apache.commons.dbutils.QueryRunner;

public class DbHelper {
public static QueryRunner getQueryRunner() {
  DataSource ds = null;
  try {
   Context context = new InitialContext();
   ds = (DataSource) context.lookup("java:/comp/env/jdbc/oracleds");
   //System.out.println("oracle鏈接池成功");
  } catch (Exception e) {
   System.out.println("oracle鏈接池失敗");
  }
QueryRunner qr = new QueryRunner(ds);
  return qr;
}
}
查詢就直接使用QueryRunner裏的query();方法就能夠了,其它的增刪改就直接用QueryRunner裏的update();方法就好了。

以下是查詢的示例:

String sql = "select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp";
   QueryRunner qr = DbHelper.getQueryRunner();
   List list = (List) qr.query(sql, new BeanListHandler(Emp.class));

以下是刪除的示例:

String id = request.getParameter("id");
  String sql = "delete from comment where id=" + id;
  QueryRunner qr = DbHelper.getQueryRunner();
   qr.update(sql);

以下是修改的示例:

String id = request.getParameter("id");
  String username = request.getParameter("name");
  String content = request.getParameter("content");
  String sql = "update comment set username=?,content=? where id=?";
  String params[] = { username, content, id };
  QueryRunner qr = DbHelper.getQueryRunner();
   qr.update(sql, params);

以下是增長的示例

String name = request.getParameter("name");
  String content = request.getParameter("content");
  String blog_id = request.getParameter("blog_id");

  if (name == null || name.equals("")) {
   name = "匿名";
  }

  String sql = "insert into comment (username,content,blog_id,createdtime) values (?,?,?,now())";
  String params[] = { name, content, blog_id };

  QueryRunner qr = DbHelper.getQueryRunner();
   qr.update(sql, params);
相關文章
相關標籤/搜索