<%@ page contentType="text/html; charset=gb2312"%> jsp中实现连接池
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
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)
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号