主要由下面三个文件组成:
db.properties
driver=sun.jdbc.odbc.JdbcOdbcDriver
url=Jdbc:Odbc:catalog
username=catalog
password=catalog
size=2
maxsize=4
java 代码
- package database;
-
-
- import java.io.*;
- import java.sql.*;
- import java.util.*;
-
-
-
- public class ConnectionPool extends Thread
- {
-
- private ArrayList pool=new ArrayList();
-
- private String driver;
- private String url;
- private String username;
- private String password;
- private int size;
- private int maxsize;
-
-
- private void initJDBC()
- {
- try
- {
-
- InputStream fin=this.getClass().getResourceAsStream("/db.properties");
- Properties prop=new Properties();
- prop.load(fin);
-
-
- driver=prop.getProperty("driver","sun.jdbc.odbc.JdbcOdbcDriver");
- url=prop.getProperty("url","jdbc:odbc:catalog");
- username=prop.getProperty("username","catalog");
- password=prop.getProperty("password","catalog");
- size=Integer.parseInt(prop.getProperty("size","2"));
- maxsize=Integer.parseInt(prop.getProperty("maxsize","4"));
-
- Class.forName(driver);
- }
- catch(Exception e)
- {
- e.printStackTrace();
- }
- }
-
- private synchronized void initConnectionPool()
- {
- try
- {
- for(int i=0;i {
- Connection con=DriverManager.getConnection(url,username,password);
- con.setAutoCommit(false);
- PooledConnection pcon=new PooledConnection(con);
- pcon.setInuse(false);
-
-
- pool.add(pcon);
- }
- }
- catch(Exception e)
- {
- e.printStackTrace();
- }
- }
-
-
- public synchronized Connection applyConnection()
- {
- Connection con=null;
- for(int i=pool.size()-1;i>=0;i--)
- {
- PooledConnection pcon=(PooledConnection)pool.get(i);
- if(!pcon.isInuse())
- {
- pcon.setInuse(true);
- return pcon.getConnection();
- }
- }
- try
- {
- con=DriverManager.getConnection(url,username,password);
- con.setAutoCommit(false);
-
- PooledConnection pcon=new PooledConnection(con);
- pcon.setInuse(true);
-
- pool.add(pcon);
- }
- catch(Exception e)
- {
- e.printStackTrace();
- }
- return con;
- }
-
-
- public synchronized void releaseConnection(Connection con)
- {
- for(int i=pool.size()-1;i>=0;i--)
- {
- PooledConnection pcon=(PooledConnection)pool.get(i);
- if(pcon.getConnection().equals(con))
- {
- pcon.setInuse(false);
- return;
- }
- }
- }
-
-
-
- public synchronized void closeConnectionPool()
- {
- try
- {
- for(int i=pool.size()-1;i>=0;i--)
- {
- PooledConnection pcon=(PooledConnection)pool.get(i);
- if(pcon.isInuse())
- {
- Thread.sleep(500);
- }
- pcon.close();
- pool.remove(pcon);
- }
- }
- catch(Exception e)
- {
- e.printStackTrace();
- }
- }
-
- public void run()
- {
- while(true)
- {
- try
- {
- synchronized(this)
- {
- while(pool.size()>maxsize)
- {
- PooledConnection pcon=null;
-
- for(int i=pool.size()-1;i>=0;i--)
- {
- PooledConnection pn=(PooledConnection) pool.get(i);
- if(!pn.isInuse())
- {
- pcon=pn;
- }
- if(pcon!=null)
- {
- pool.remove(pcon);
- }
- else
- {
- break;
- }
- }
- }
- }
- Thread.sleep(1000*60);
- }
- catch(Exception e)
- {
- e.printStackTrace();
- }
- }
- }
-
- private static ConnectionPool conPool=new ConnectionPool();
- private ConnectionPool()
- {
- this.initJDBC();
- this.initConnectionPool();
-
- this.start();
- }
-
-
- public static ConnectionPool getInstance()
- {
- return conPool;
- }
- }
-
PooledConnection.java
java 代码
- package database;
-
- import java.sql.*;
-
-
- public class PooledConnection
- {
-
- private Connection con;
-
- private boolean inuse;
-
- public PooledConnection(Connection con)
- {
- this.con=con;
- }
- public Connection getConnection()
- {
- return con;
- }
-
- public void setInuse(boolean inuse)
- {
- this.inuse=inuse;
- }
-
- public boolean isInuse()
- {
- return this.inuse;
- }
-
- public void close()
- {
- try
- {
- if(con!=null)
- {
- con.close();
- }
- con=null;
- }
- catch(Exception e)
- {
- e.printStackTrace();
- }
- }
- }
-
-
- ConnectionPool.java
分享到:
相关推荐
public Pagi()//定义构造器,初始化每页显示的主题数和数据库的连接。 { intPageSize=4; //每页显示的记录数目 db = new DB(); } //Countsql:总记录的Query字符串。[形式为select count(*) from tablename] //...
JavaBean连接数据库实际上就是定义与数据库连接 类的属性主要有连接数据库的对象、记录集对象、St t对象等;其构造方法实现对数据库的连接,即给连接 行初始化,根据连接不同的数据库,可分别对构造方 重载,如用...
本资源为使用jsp作为前台显示,使用servlet作为控制器,使用javabean作为模型,同时使用了数据库连接池和DAO。用户分为学生和管理员,学生可以根据选课列表选择课程,管理员可以对学生和课程进行增删改查
首先讲述了JAVA的数据库访问机制,并对实际应用中出现的问题进行了分析,然后提出了能改善WEB应用系统性能的连接池技术的一般工作机制,并用JAVABEAN构造了一个基本的连接池。最后结合当前热门的JSP技术列举了应用...
第一步:写javabean 代码如下: package withouttears.jdbc.db; import java.util.HashMap; import java.sql.*;... //数据库资源的连接工厂是javax.sql.DataSource对象, //它可以创建java.sql.Connec
根据mysql数据库自动生成对应的javabean,附带jdbc连接池工具类封装,支持Resultset转List javabean对象
之后,Sun公司推出了基于Java语言的Servlet+Jsp+JavaBean技术。相比传统的开发技术,它具有跨平台?安全?有效?可移植等特性,这使其更便于使用和开发。 Java应用程序访问数据库的基本原理
本人总结的java数据库连接知识 1)直接使用java类 2)使用jsp+javabean 3) 使用Tomcat连接池
JavaWeb、jsp毕业设计源码,包括但不限于servlet、jsp、javabean、JDBC等。这些源码可以直接用于您的毕业设计,也可以作为您学习和参考的资料。 详细的毕业论文,内容详实、逻辑清晰、论述深入。论文主要包括项目的...
采用jsp+servlet+javabean,jsp负责少量的页面处理,以servlet为主。... 开发调试平台为jbuilder9+tomcat4,... 数据库平台为ms sql server2000 数据库连接池为apache组织下jakarta项目组开发的commons-dbcp 1.0
mysql +连接池+JavaBean 实现用户注册登陆系统 <br>其实这是jsp宝典上第14章的例子,只是书上错误百出,我反复 修改终于调试成功。 <br>调试环境: xp2 mysql5.018 jdk1.5.0_04 Tomcat5.028...
1. 该实例使用JSP+JavaBean方法实现。 2. 数据库连接首先使用普通连接方法,然后使用数据库连接池技术。请查看连接数据库的DBConnect.java源文件。 3. 同样需要导入相应的Jar包文件。
固定资产管理系统(jsp版有连接池) 另外是sqlserver数据库,实现javabean技术。
毕设 办公自动化 OA JSP Servlet javabean 使用MYECLIPSE 和 TOMCAT发布,使用数据库连接池技术,和使用方法,使用SQL2000数据库
1、新增数据库连接池并可以手动配置,提升数据库连接的使用效率。 2、新增多线程并发处理并可以手动配置,大大提升数据收集和文件生成的效率。 3、增强字符串格式化工具,使得自动拼接字符串的应用场景更多。 4...
用JSP+Servlet+JavaBean开发个人通讯录(附加数据库)实现数据的增删改查+登录/注册界面的详细;并且数据库运用了数据库连接池等详细功能;