⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pooltest.java

📁 导出ORACLE数据库对象DDL语句的程序
💻 JAVA
字号:
package com.icbcsdc.ddlexp.pub.connectionpool;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;



/**
 * @author zhangyc
 * 2004-12-30 edit by zhangp (rs.close())
 * 
 * To change this generated comment edit the template variable "typecomment":
 * Window>Preferences>Java>Templates.
 * To enable and disable the creation of type comments go to
 * Window>Preferences>Java>Code Generation.
 */
public class PoolTest {

	/**
	 * Constructor for PoolTest.
	 */
	public PoolTest() {
		super();
	}
	
	
	/**
	 * 测试连接是否可以自动恢复
	 * */
	public static void testGetConneciton(){
		String driverClassName = "org.gjt.mm.mysql.Driver";
		String url = "jdbc:mysql://localhost:3306/test";
		String dbUser = "root";
		String dbPassword = "root";
		String backDir="/usr/local/mysql";
		JDBCPool jcnn=null;		
		String sqlstr="select * from t1";
	
			
		//第一步:获取唯一的连接池管理器实例			
		JDBCPoolManager manager=JDBCPoolManager.getInstance();

		//第二步:根据需要,设置连接池管理器的属性			
		manager.setPoolMinSize(1);
		manager.setPoolMaxSize(4);

		//第三步:获取可用的空闲连接
		try {
			jcnn=manager.getJDBCPool(driverClassName,url,dbUser,dbPassword);
		} catch (JDBCException e) {
			System.out.println(e.getMessage());
			return;
		}

		//第四步:执行sql语句
		ResultSet rs=null;
		try {
			rs = jcnn.executeQuery(sqlstr);		
			while(rs.next()){
				System.out.println(rs.getInt("col1"));
			}
		} catch (JDBCException e) {
			System.out.println(e.getMessage());
			return;
		} catch (SQLException e) {
			System.out.println(e.getMessage());
			return;
		}
//			ResultSet对象的关闭由调用者实现
		try {
			rs.close();
		} catch (SQLException e) {
			System.out.println(e.getMessage());
			return;
		}

				
		/**
		 * } catch (Exception e) {
			System.out.println(e.getMessage());
			return;
			//e.printStackTrace();
		}*/

	}

	/**
	 * 测试如何正确获取连接
	 * */
	public static void testReConneciton(){
		String driverClassName = "org.gjt.mm.mysql.Driver";
		String url = "jdbc:mysql://localhost:3306/test";
		String dbUser = "root";
		String dbPassword = "root";

		int id=0;
		String backDir="/usr/local/mysql";
		boolean notStop=true;
		int count=25;
		JDBCPool jcnn=null;		
		JDBCPool jcnn1=null;		
		String sqlstr="select * from t1";
		String sqlstr1="select * from t2";
	
		//第一步:获取唯一的连接池管理器实例						
		JDBCPoolManager manager=JDBCPoolManager.getInstance();
		
		try {
			//第二步:根据需要,设置连接池管理器的属性			
			manager.setPoolMinSize(1);
			manager.setPoolMaxSize(4);

			//第三步:获取可用的空闲连接
			jcnn=manager.getJDBCPool(driverClassName,url,dbUser,dbPassword);

			//第四步:执行sql语句
			ResultSet rs = jcnn.executeQuery(sqlstr);		
			while(rs.next()){
				System.out.println(rs.getInt("col1"));
			}
			//ResultSet对象的关闭由调用者实现
			rs.close();
		} catch (Exception e) {
			//e.printStackTrace();
			//System.out.println(e.getMessage());
		}
		
		try {
			Thread.currentThread().sleep(1500);
			ResultSet rs1 = jcnn.executeQuery(sqlstr1);		
			while(rs1.next()){
				System.out.println(rs1.getInt("c1"));
			}
		} catch(Exception e) {
			System.out.println(e.getMessage());			
		}
///**	
		try {
			jcnn1=manager.getJDBCPool(driverClassName,url,dbUser,dbPassword);
			ResultSet rs2=jcnn1.executeQuery(sqlstr);		
			while(rs2.next()){
				System.out.println(rs2.getInt("col1"));
			}
		} catch (Exception e) {
			e.printStackTrace();
			//System.out.println(e.getMessage());
		}

//**/
	}

	/**
	 * 测试连接是否可以自动恢复
	 * */
	public static void testPoolShrink(){
		String driverClassName = "org.gjt.mm.mysql.Driver";
		String url = "jdbc:mysql://localhost:3306/test";
		String dbUser = "root";
		String dbPassword = "root1";

		String backDir="/usr/local/mysql";
		boolean notStop=true;
		int count=25;

		String sqlstr="select * from t1";
		String sqlstr1="select * from t2";
	
		//第一步:获取唯一的连接池管理器实例			
		JDBCPoolManager manager=JDBCPoolManager.getInstance();
		try {
			//第二步:根据需要,设置连接池管理器的属性			
			manager.setScanInterval(400);
			manager.setPoolMinSize(1);
			manager.setPoolMaxSize(4);
			
			//第三步:获取可用的空闲连接
			JDBCPool jcnn=manager.getJDBCPool(driverClassName,url,dbUser,dbPassword);

			//第四步:执行sql语句
			ResultSet rs=jcnn.executeQuery(sqlstr);		
			while(rs.next()){
				System.out.println(rs.getInt("col1"));
			}
			rs.close();


			JDBCPool jcnn1=manager.getJDBCPool(driverClassName,url,dbUser,dbPassword);
			System.out.println(jcnn1.toString());
			ResultSet rs1=jcnn1.executeQuery(sqlstr1);		
			while(rs1.next()){
				System.out.println(rs1.getInt("c1"));
			}

			Thread.currentThread().sleep(2000);
		
				
		} catch (Exception e) {
			System.out.println(e.getMessage());
			//e.printStackTrace();
		}

	}

	public static void main(String[] args) {
		//testGetConneciton();
		//testReConneciton();
		testPoolShrink();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -