设为首页 收藏本站
查看: 471|回复: 0

[经验分享] 使用dbutils获取tomcat数据库连接池

[复制链接]

尚未签到

发表于 2017-2-5 13:46:03 | 显示全部楼层 |阅读模式
使用dbutils获取tomcat数据库连接池

j2se 2009-06-26 23: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的连接池设置-->

<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>

3、在需要用连接池的地方使用如下:

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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-337863-1-1.html 上篇帖子: eclipse中集成tomcat遇到的问题(一) 下篇帖子: Eclipse部署Maven创建的webapp到Tomcat
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表