| |
| jsp中实现连接池 |
| |
发布者: 发布时间:2006-05-07 |
|
|
|
做最专业的JSP中文网站 当前位置:首页--文章分类--JSP技术--数据库 文章搜索: 关键字 标题 内容
JSPCN文章目录分类 JSP其他 [40] 教程系列 [87] JAVABEAN [5] 图片声音 [8] JSP实例 [22] JSP配置 [54] 上传问题 [8] 时间相关 [3] 文件操作 [58] STRUTS [61] 中文问题 [16] 数据库 [115] JAVAMAIL [36] 开发工具 [8] JSP基础 [127] EJB [145] 声音图片 [27] XML [80] JAVA线程 [38] J2ME [65] SUN [89] Java API [20] 考试相关 [38] APPLET [57] JAVA类 [113] Application [6] Swing [11] J2EE [108] 异常处理 [11] Servlet [33] JAVA基础 [166] JAVA实例 [56] JAVA网络 [38] B/S开发 [12] B/S其他 [3] 代码收集 [6] 原子代码 [3] Jbuilder [29] RESIN [21] JBOSS [11] weblogic [34] eclipse [12] Tomcat [60] sql server [4] MYSQL [19] ORACLE [46] WWW服务 [2] 邮件服务 [4] 热点文章链接 JSP数据库连接池的必要性 [5543] Tomcat4的数据库连接池配置 [5371] 数据库连接池Java实现小结 [4668] jsp连接数据库大全 [3441] 一种简单JDBC连接池的实现 [2447] 通过JDBC连接oracle数据库的十大技巧 [2243] 用连接池提高Servlet访问数据库的效率 [1681] RESIN/TOMCAT和MYSQL的连接解决方法 [1294] JSP数据库操作例程 [865] JSP数据库连接大全 [603] 利用weblogic的POOL(连接池)连接数据库 [316] 通过JDBC连接oracle数据库的十大技巧 [277] Jsp中调用Oracle存储过程的小例子 [195] 用Java实现数据库应用系统 [11] 全面解析JDBC(一) [9] 相关文章链接 jsp中实现连接池 作者:未知 文章来源:www.jspcn.net 访问次数: 次 加入时间:2005-01-19 在JSP里有两种实现的办法,一种是用JNDI(Java Naming Directory Interface),这可能和应用服务器有关,如果是Resin,先在resin.conf里定义 <resource-ref> <res-ref-name>jdbc/oracle</res-ref-name> <res-type>javax.sql.DataSource</res-type> <init-param driver-name="oracle.jdbc.driver.OracleDriver"/> <init-param url="jdbc:oracle:thin:@192.168.1.1:1521:oracle"/> <init-param user="system"/> <init-param password="manager"/> <init-param max-connections="20"/> <init-param max-idle-time="30"/> </resource-ref> 如果为Tomcat,在Server.xml里面定义,有关的资料可以查文档,然后在jsp里这样用 try{ javax.naming.Context env = (Context)new InitialContext().lookup("java:comp/env"); javax.sql.DataSource pool=(javax.sql.DataSource) env.lookup("jdbc/oracle"); }catch(Exception e){System.err.println("Exception error:"+e.getMessage());}
try { Connection conn = pool.getConnection(); }catch(Exception e){System.out.println("Exception error:"+e.getMessage());} 通过这段代码,你就获得从连接池里获得了一个连接conn。如果想用普通的连接池,那只能用JavaBean了,先写一个ConnectionPool的java的类,然后直接从连接池中获得连接,下面是我一个连接池的JavaBean ConnectionPool.java如下:
import java.io.PrintStream; import java.sql.Connection; import java.util.Vector;
// Referenced classes of package com.ilovejsp.sql: // DataSource, PooledConnection
public class ConnectionPool { private Vector pool; private int size; DataSource db;
public ConnectionPool() { pool = null; size = 0; db = new DataSource(); }
public void setSize(int value) { if(value > 1) size = value; }
public int getSize() { return size; }
public synchronized void initPool() throws Exception { try { for(int x = 0; x < size; x++) { Connection conn = db.getConnection(); if(conn != null) { PooledConnection pcon = new PooledConnection(conn); addConnection(pcon); } }
} catch(Exception e) { System.err.println(e.getMessage()); } }
private void addConnection(PooledConnection pcon) { if(pool == null) pool = new Vector(size); pool.addElement(pcon); }
public synchronized void releaseConnection(Connection conn) { int x = 0; do { if(x >= pool.size()) break; PooledConnection pcon = (PooledConnection)pool.elementAt(x); if(pcon.getConnection() == conn) { System.err.println("Release Connection".concat(String.valueOf(String.valueOf(x)))); pcon.setInUse(false); break; } x++; } while(true); }
public synchronized Connection getConnection() throws Exception { PooledConnection pcon = null; for(int x = 0; x < pool.size(); x++) { pcon = (PooledConnection)pool.elementAt(x); if(!pcon.inUse()) { pcon.setInUse(true); return pcon.getConnection(); } }
try { Connection conn = db.getConnection(); pcon = new PooledConnection(conn); pcon.setInUse(true); pool.addElement(pcon); } catch(Exception e) { System.err.println("Exception error:".concat(String.valueOf(String.valueOf(e.getMessage())))); } return pcon.getConnection(); }
public synchronized void emptyPool() { for(int x = 0; x < pool.size(); x++) { System.err.println("Closing Jdbc Connection".concat(String.valueOf(String.valueOf(x)))); PooledConnection pcon = (PooledConnection)pool.elementAt(x); if(!pcon.inUse()) { pcon.close(); continue; } try { Thread.sleep(3000L); pcon.close(); } catch(Exception e) { System.out.println("Exception :".concat(String.valueOf(String.valueOf(e.getMessage())))); } }
db.close(); } } testpool.jsp内容如下: <%@ page language="java" contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%>
<HTML> <HEAD> <TITLE>系统数据信息</TITLE> </HEAD> <BODY> <%ConnectionPool db=new ConnectionPool(); Connection conn=db.getConnection(); Statement stmt=conn.createStatement(); String sql1="select * from pg_database ";
ResultSet rs=stmt.executeQuery(sql1); %> <TABLE><TR><TD>系统数据库信息</TD></TR> <TR><TD> <%while(rs.next()) { %> <%=rs.getString(1)%> <%} rs.close();%> </TR></TD> <TABLE><TR><TD>系统字段信息</TD></TR> <TR><TD> <%String sql2="select * from pg_type"; rs=stmt.executeQuery(sql2); while(rs.next()) { %> (<%=rs.getString(1)%>) <%} rs.close(); db.close();%> </TR></TD> </BODY> </HTML>
|
| (转载文章请保留出处:北天JAVA技术网(www.java114.com)) |
| |
| 更多精彩文章: |
| 一种高效的javabea分页For SqlServer |
| 如何在JSP中处理中文 |
| 设置JSP开发及运行环境 |
| JSP分页技术实现 |
| jsp预编译工具 |
| jsp预编译问题 |
| |
| 最近评论: |
|
|
| 你曾悄悄的来过! |
| wow gold,wow gold,wow gold,ffxi gil max(5647) |
|
|
| 冰封的往事! |
| wow power leveling,wow gold,wow power leveling,wow gold
max(860) |
|
|
| 冰封的往事! |
| wow power leveling,wow gold,wow power leveling,wow gold
max(8191) |
|
|
| 飞舞的传奇! |
| 传世私服,传世私服.传奇世界私服传奇世界私服,传世私服传世私服, 传奇世界私服传奇世界私服.传奇私服传奇私服. max(1300) |
|
|
| |
| 免责声明:该文章由网友发表,如果对您造成侵权,请联系站长。 |
|