用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

创建连接

2017-08-16 作者:举报

[java]代码库

package Util;

import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

import org.apache.commons.dbcp.BasicDataSource;

public class DBUtil {
	
	private static BasicDataSource ds;
	
	static {
		Properties p = new Properties();
		try {
			//读取参数
			p.load(DBUtil.class.getClassLoader()
				.getResourceAsStream("db.properties"));
			String driver = p.getProperty("driver");
			String url = p.getProperty("url");
			String user = p.getProperty("user");
			String pwd = p.getProperty("pwd");
			String initsize = p.getProperty("initsize");
			String maxsize = p.getProperty("maxsize");
			//创建连接池
			ds = new BasicDataSource();
			//设置参数
			ds.setDriverClassName(driver);
			ds.setUrl(url);
			ds.setUsername(user);
			ds.setPassword(pwd);
			ds.setInitialSize(new Integer(initsize));
			ds.setMaxActive(new Integer(maxsize));
		} catch (IOException e) {
			e.printStackTrace();
			throw new RuntimeException(
				"加载配置文件失败.", e);
		}
	}
	
	/**
	 * 本方法是采用BasicDataSource创建的连接,
	 * 则Connection接口是由DBCP实现的,而并非
	 * 由Oracle实现.当然DBCP的实现类中会调用
	 * Oracle的驱动类.
	 */
	public static Connection getConnection() 
		throws SQLException {
		return ds.getConnection();
	}
	
	/**
	 * 由DBCP所提供的连接对象的实现类,
	 * 其close方法的逻辑不是关闭连接,
	 * 而是归还连接,即它会将连接内包含的
	 * 数据清空,并且将连接的状态设置为空闲.
	 * */
	public static void close(Connection conn) {
		if(conn != null) {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
				throw new RuntimeException(
					"关闭连接失败.", e);
			}
		}
	}
	
	public static void rollback(Connection conn) {
		if(conn != null) {
			try {
				conn.rollback();
			} catch (SQLException e) {
				e.printStackTrace();
				throw new RuntimeException(
					"事务回滚失败.", e);
			}
		}
	}
	
	public static void main(String[] args) 
		throws SQLException {
		Connection conn = 
			DBUtil.getConnection();
		System.out.println(conn);
		DBUtil.close(conn);
	}

}







分享到:
更多

网友评论    (发表评论)

共2 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。