Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1503312
  • 博文数量: 3500
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 43870
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-03 20:31
文章分类

全部博文(3500)

文章存档

2008年(3500)

我的朋友

分类:

2008-05-04 20:17:53

一起学习
现在我们结合DBConnetionManager和DBConnectionPool类来讲解servlet中连接池的使用:   一、首先简单介绍一下Servlet的生命周期:   Servlet API定义的servlet生命周期如下: 1、 Servlet 被创建然后初始化(init()方法)。 2、 为0个或多个客户调用提供服务(service()方法)。 3、 Servlet被销毁,内存被回收(destroy()方法)。   二、servlet中使用连接池的实例   使用连接池的servlet有三个阶段的典型表现是: 1. 在init()中,调用DBConnectionManager.getInstance()然后将返回的引用保存在实例变量中。 2. 在sevice()中,调用getConnection(),执行一系列数据库操作,然后调用freeConnection()归还连接。 3. 在destroy()中,调用release()来释放所有的资源,并关闭所有的连接。   下面的例子演示如何使用连接池。 import java.io.*; import java.sql.*; import javax.servlet.*; import javax.servlet.http.*; public class TestServlet extends HttpServlet { private DBConnectionManager connMgr; public void init(ServletConfig conf) throws ServletException { super.init(conf); connMgr = DBConnectionManager.getInstance(); } public void service(HttpServletRequest req, HttpServletResponse res) throws IOException { res.setContentType("text/html"); PrintWriter out = res.getWriter(); Connection con = connMgr.getConnection("idb"); if (con == null) { out.println("Cant get connection"); return; } ResultSet rs = null; ResultSetMetaData md = null; Statement stmt = null; try { stmt = con.createStatement(); rs = stmt.executeQuery("SELECT * FROM EMPLOYEE"); md = rs.getMetaData(); out.println(" Employee data "); while (rs.next()) { out.println(" "); for (int i = 1; i < md.getColumnCount(); i ) { out.print(rs.getString(i) ", "); } } stmt.close(); rs.close(); } catch (SQLException e) { e.printStackTrace(out); } connMgr.freeConnection("idb", con); } public void destroy() { connMgr.release(); super.destroy(); } } 下载本文示例代码


Servlet中jdbc应用高级篇(五)Servlet中jdbc应用高级篇(五)Servlet中jdbc应用高级篇(五)Servlet中jdbc应用高级篇(五)Servlet中jdbc应用高级篇(五)Servlet中jdbc应用高级篇(五)Servlet中jdbc应用高级篇(五)Servlet中jdbc应用高级篇(五)Servlet中jdbc应用高级篇(五)Servlet中jdbc应用高级篇(五)Servlet中jdbc应用高级篇(五)Servlet中jdbc应用高级篇(五)
阅读(28) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~