Servlet中jdbc应用高级篇之六

779 篇文章 0 订阅
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

  现在我们结合DBConnetionManager和DBConnectionPool类来讲解Servlet中连接池的使用:

  一、首先简单介绍一下Servlet的生命周期:

  ServletAPI定义的Servlet生命周期如下:

  1、Servlet被创建然后初始化(init()方法)。

  2、为0个或多个客户调用提供服务(service()方法)。

  3、Servlet被销毁,内存被回收(destroy()方法)。

  二、Servlet中使用连接池的实例

  使用连接池的Servlet有三个阶段的典型表现是:

  1.在init()中,调用DBConnectionManager.getInstance()然后将返回的引用保存在实例变量中。

  2.在sevice()中,调用getConnection(),执行一系列数据库操作,然后调用freeConnection()归还连接。

  3.在destroy()中,调用release()来释放所有的资源,并关闭所有的连接。

  下面的例子演示如何使用连接池。

  importjava.io.*;

  importjava.sql.*;

  importjavax.Servlet.*;

  importjavax.Servlet.http.*;

  publicclassTestServletextendsHttpServlet{

  privateDBConnectionManagerconnMgr;

  publicvoidinit(ServletConfigconf)throwsServletException{

  super.init(conf);

  connMgr=DBConnectionManager.getInstance();

  }

  publicvoidservice(HttpServletRequestreq,HttpServletResponseres)

  throwsIOException{

  res.setContentType("text/html");

  PrintWriterout=res.getWriter();

  Connectioncon=connMgr.getConnection("idb");

  if(con==null){

  out.println("Cantgetconnection");

  return;

  }

  ResultSetrs=null;

  ResultSetMetaDatamd=null;

  Statementstmt=null;

  try{

  stmt=con.createStatement();

  rs=stmt.executeQuery("SELECT*FROMEMPLOYEE");

  md=rs.getMetaData();

  out.println("

  Employeedata

  ");

  while(rs.next()){

  out.println("

  ");

  for(inti=1;i

  out.print(rs.getString(i)+",");

  }

  }

  stmt.close();

  rs.close();

  }

  catch(SQLExceptione){

  e.printStackTrace(out);

  }

  connMgr.freeConnection("idb",con);

  }

  publicvoiddestroy(){

  connMgr.release();

  super.destroy();

  }<

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值