JDBC连接SqlServer数据库

本文介绍了如何通过DBCP数据库连接池来管理JDBC连接,以节省内存开销和提高代码效率。在建立数据库连接池时,需要引入commons-collections-3.1.jar、commons-dbcp-1.2.1.jar和commons-pool-1.2.jar这三个jar包。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、数据库连接:DBManager.java

package com.softeem.jdbc.utils;
importjava.sql.*;

/**
 * 此类用于对数据库连接进行管理
 * 1.获取数据库连接
 * 2.关闭数据库连接
 * @authorLiaoWanjun
 */
publicclassDBManager {
	
	//复制行Ctrl+Alt+up/down
	privatestaticfinal String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
	privatestaticfinal String URL="jdbc:sqlserver://localhost:1433;databaseName=db_book";
	privatestaticfinal String USERNAME="sa";
	privatestaticfinal String PWD="admin123";
	
	/**
	 * 静态块中加载数据库连接驱动
	 * 静态块只在类首次加载时执行一次
	 */
	static{
		try {
			Class.forName(DRIVER);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}

	}

	/**
	 * 获取数据库连接
	 * @return
	 */
	publicstatic Connection getConn(){
		Connection conn=null;
		try {
			conn=DriverManager.getConnection(DRIVER,USERNAME,PWD);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return conn;
	}
	
	/**
	 * 关闭数据库连接
	 * @paramst
	 * @param conn
	 */
	publicstaticvoid close(Statement st,Connection conn){
		close(null,st,conn);
	}
	
	/**
	 * 关闭数据库连接
	 * @paramrs
	 * @paramst
	 * @param conn
	 */
	publicstaticvoid close(ResultSetrs,Statementst,Connection conn){
		try {
			if(rs!=null){

				rs.close();
			}
			if(st!=null){

				st.close();
			}
			if(conn!=null){

				conn.close();
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

}

2DBCP数据库连接池:DataBaseConnectionPool.java

       我们可以通过DriverManager获得Connection数据库连接,但每次获取的都是新创建的一个连接,因此我们就需要创建一个数据库连接池。

       数据库连接池特点:1) 节省内存开销

                                        2) 节约时间,提高代码效率

        建立数据库连接池需要导入三个jar

         commons-collections-3.1.jar

         commons-dbcp-1.2.1.jar

         commons-pool-1.2.jar

packagecom.softeem.jdbc.utils;

importjava.sql.*;

importorg.apache.commons.dbcp.BasicDataSource;
importorg.apache.commons.dbcp.PoolableConnection;

/**
 * 数据库连接池
 * @authorLiaoWanjun
 *
 */
publicclassDBConnectionPool {
	
	privatestaticfinal String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";
	privatestaticfinal String URL="jdbc:sqlserver://localhost:1433;databaseName=db_book";
	privatestaticfinal String USERNAME="sa";
	privatestaticfinal String PWD="123456";
	//设置数据库连接池的最大值
	privatestaticfinalintMAXACTIVE=20;
	//声明数据库连接池,全局变量引用类型的默认值为null
	privatestaticBasicDataSourcepool=null;
	
	static{
		//new一个数据库连接池
		pool=newBasicDataSource();
		
		pool.setDriverClassName(DRIVER);
		pool.setUrl(URL);
		pool.setUsername(USERNAME);
		pool.setPassword(PWD);
		pool.setMaxActive(MAXACTIVE);
	}
	/**
	 * 获取数据库连接
	 * @return
	 */
	publicstatic Connection getConn(){
		Connection conn=null;
		try {
			conn=pool.getConnection();
			
		} catch (SQLException e) {
			System.out.println("获取连接失败!");
			e.printStackTrace();
		}
		
		return conn;
	}
}


 

 

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值