JDBC连接MySQL方法之poolman



     我们知道最简单的连接模式是DriverManager+Connection+Statement+ResultSet。

    利用JDBC连接MySQL的方法很多,今晚看书的时候本来是想使用jndi.properties的方法来连接的,试来试去结果用poolman连接成功了,没有用到JNDI查询DataSource的方法,具体步骤如下:

  1. 准备工作要做好,下载一个mysql-connector-java-5.1.10连接驱动的。

     下载一个poolman包,里面包含很多需要用到的.jar,并加入到classpath中去。 

                    jar poolman.jar (poolman的核心包);

                    jdbc2_0-stdext.jar (提供poolman连接池继承的JDBC接口);

                    jaxp.jar 和 crimson.jar (用于读XML配置文件);

                    log4j.jar (记日志的,具体还没怎么弄明白,导致了结果有一个小问题)。

     写一个poolman.xml文件,写好后拖入到工程目录下,代码如下:

  <?xml version="1.0" encoding="UTF-8" ?> 
- <poolman>
- <datasource>   
  <dbname>nba</dbname> 
  <jndiName>default</jndiName> 
  <driver>com.mysql.jdbc.Driver</driver> 
  <url>jdbc:mysql://localhost:3306/hy</url> 
  <username>root</username> 
  <password>root</password> 
  <poolPreparedStatements>false</poolPreparedStatements> 
  <initialConnections>3</initialConnections> 
  <minimumSize>0</minimumSize> 
  <maximumSize>10</maximumSize> 
  <maximumSoft>true</maximumSoft> 
  <connectionTimeout>300</connectionTimeout> 
  <userTimeout>0</userTimeout> 
  <skimmerFrequency>300</skimmerFrequency> 
  <shrinkBy>10</shrinkBy> 
  <transactionTimeout>100</transactionTimeout> 
  <cacheEnabled>false</cacheEnabled> 
  <cacheSize>10</cacheSize> 
  <cacheRefreshInterval>120</cacheRefreshInterval> 
  <removeOnExceptions>false</removeOnExceptions> 
  </datasource>
  </poolman>

<dbname> 池名
<jndiName> JNDI 名
<driver> 数据库驱动,如:com.mysql.jdbc.driver
<url> 数据库的连接地址
<username> <password>连接数据库的用户名及密码
<initialConnections> 池的初始连接数,默认值为1
<minimumSize> 最少连接数,默认值为0
<maximumSize> 最大的连接数,默认值为Inter.MAX_VALUE (2的31次方-1)
<connectionTimeout> 连接最长保留时间,默认值为1200秒
<userTimeout> 数据库库操作的最长时间,默认值20秒
<logFile> 日志文件地址,默认为system.out
<debugging> 是否为调试状态,默认为false
<cacheEnabled> 缓存resultse ,默认false
<cacheRefreshInterval> 缓存刷新间隔,默认:30秒 

注:我的MySQL上建的数据库user=root,password=root;

 

 

2.准备工作结束,着手编写JAVA代码

package J1;

import java.sql.*;
import javax.sql.*;
import com.codestudio.sql.PoolMan;

public class testDataSource {
	public static void main(String hy[]) {
		Connection con = null;
		try {
			DataSource ds = PoolMan.findDataSource();//调用poolman.xml中的DataSource信息
			con = ds.getConnection();//读取调取的信息
			Statement stmt = con.createStatement();// 使用connection对象创建一个statement对象
			ResultSet rs = stmt.executeQuery("select id,name,team from nba");
//			 通过statement对象执行一个SQL select语句,并返回一个ResultSet
			while (rs.next()) {// 利用ResultSet来逐步访问(或遍历)并检查返回的数据行
				System.out.println(rs.getString("id") + "\t"
						+ rs.getString("name") + "\t" + rs.getString("team"));
			}

		} catch (SQLException e) {
			e.printStackTrace();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (con != null)
					con.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
}

 

No log file indicated for hy, logging that pool's info to the console
PoolMan Local Pool Deployer: Created JDBC Connection Pool named: hy
1	kobe	Lakes
2	jordan	bull
3	Iverson	76ers

 

    

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值