JDBC连接MySQL方法之poolman

SQL&&持久层 专栏收录该内容
2 篇文章 0 订阅



     我们知道最简单的连接模式是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
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值