java代码实现连接池,java连接池工作原理

请问那位可以给个用纯java实现数据库连接池的代码

DataSource ds=null;

创新互联专注于零陵网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供零陵营销型网站建设,零陵网站制作、零陵网页设计、零陵网站官网定制、微信小程序服务,打造零陵网络公司原创品牌,更为您提供零陵网站排名全网营销落地服务。

Connection con=null;

PreparedStatement ps=null;

ResultSet rs=null;

String username=null;

try{

//实现数据连接池

Context ctx=new InitialContext();

ds=(DataSource)ctx.lookup("java:comp/env/jdbc/userInfo");

}catch(NamingException ne){ne.printStackTrace();}

try{

con=ds.getConnection();

String sql="select * from guestbook order by gst_time desc";

st=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,

ResultSet.CONCUR_READ_ONLY);

rs=st.executeQuery(sql);

。。。。。。

。。。

}

在这段代码中

Context ctx=new InitialContext();

ds=(DataSource)ctx.lookup("java:comp/env/jdbc/userInfo");就是连接池代码。

它是读取配置文件(Context.xml)中数据的。

以下是配置文件:

Context path="/WebModule1" docBase="E:\Home\WebModule1" reloadable="true"

Resource name="jdbc/userInfo" auth="Container" type="javax.sql.DataSource"

maxActive="100" maxIdle="30" maxWait="10000" username="sa" password="bye0406"

driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"

url="jdbc:microsoft:sqlserver://localhost:1433;databasename=userInfo" /

/Context

path和docBase中的路径根据自己需要配置路径。该路径是WEB应用程序的路径。driverClassName和url是连接数据库的驱动类和连接的URL,是根据你使用的哪种数据库而定。

以下是四种数据库的配制驱动:

驱动

SQL Server 2000

类名:com.microsoft.jdbc.sqlserver.SQLServerDriver

URL:jdbc:microsoft:sqlserver://localhost:1433;databasename=pubs

Oracle

类名:oracle.jdbc.driver.OracleDriver

URL:jdbc:oracle:thin:@localhost:152:ORCL

Mysql

类名:com.mysql.jdbc.Driver

URL:jdbc:mysql://localhost:3306/databasename

JDBC-ODBC

类名:sun.jdbc.odbc.JdbcOdbcDriver

URL:jdbc:odbc:datasource_name;

请写一个java程序实现线程连接池功能?

方法一:继承 Thread 类,覆盖方法 run(),我们在创建的 Thread 类的子类中重写 run() ,加入线程所要执行的代码即可。下面是一个例子:

public class MyThread extends Thread {

int count= 1, number;

public MyThread(int num) {

number = num;

System.out.println("创建线程 " + number);

}

public void run() {

while(true) {

System.out.println("线程 " + number + ":计数 " + count);

if(++count== 6) return;

}

}

public static void main(String args[]) {

for(int i = 0; i 〈 5; i++) new MyThread(i+1).start();

}

}

怎么在JAVA中创建一个数据库连接池?求实例代码

用c3po来创建数据库连接池,

1.到网络上下载c3p0-0.9.0.4.jar包,导入工程;(注意以下方法只能用于web服务).

2.找出web服务器中conf目录下的centent.xml,在里面加上以下配置

Resource auth="Container"

description="DB Connection"

driverClass="com.mysql.jdbc.Driver"

maxPoolSize="4"

minPoolSize="2"

acquireIncrement="1"

name="jdbc/TestDB"

user="root"

password="root"

factory="org.apache.naming.factory.BeanFactory"

type="com.mchange.v2.c3p0.ComboPooledDataSource"

jdbcUrl="jdbc:mysql://localhost:3306/自己的数据库名?autoReconnect=true" /

3.java获取连接池的代码;

import java.sql.Connection;

import java.sql.SQLException;

import javax.naming.InitialContext;

import javax.naming.NamingException;

import javax.sql.DataSource;

public class DBUtils {

static InitialContext ic;

static DataSource ds;

static{

try {

ic = new InitialContext();

ds = (DataSource)ic.lookup("java:comp/env/jdbc/TestDB");

} catch (NamingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

public static Connection getCon() {

try {

return ds.getConnection();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

return null;

}

}

}

通过以上代码,即可获取连接池中的连接.


当前名称:java代码实现连接池,java连接池工作原理
转载注明:http://scyanting.com/article/dsidsod.html