数据库连接通用类

       作者:sundroid

       个人站点:sundroid.cn    邮箱: hfutsnjc@163.com   微博:http://weibo.com/Sundroid

    在平时开发中,数据库连接是常有的事,但是我们应该都知道将配置信息写在config.properties里面那么当数据库迁移后也无需修改代码,同时这里也优化了线程,不会发生由于数据库连接数较多时的连接异常问题,减轻数据库连接的压力。

package com.sundroid.utils.db;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import com.sundroid.utils.common.PropertiesUtils;

public class JdbcUtil {

	private static ThreadLocal<Connection> tl = new ThreadLocal<Connection>();

	public static java.sql.Connection getConnection() {

		Connection conn = null;
		PropertiesUtils.loadFile("jdbc.properties");
		String url = PropertiesUtils.getPropertyValue("url");

		String UserName = PropertiesUtils.getPropertyValue("username");

		String Password = PropertiesUtils.getPropertyValue("password");

		try {
			Class.forName(PropertiesUtils.getPropertyValue("driverClassName"));

			conn = DriverManager.getConnection(url, UserName, Password);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return conn;
	}

	public static void beginTransaction() throws SQLException {
		Connection con = tl.get();

		if (con != null)
			throw new SQLException("开启事务异常");
		con = getConnection();
		con.setAutoCommit(false);
		tl.set(con);
	}

	public static void commitTransaction() throws SQLException {
		Connection con = tl.get();
		if (con == null)
			throw new SQLException("提交事务异常");
		con.commit();
		con.close();
		con = null;
		tl.remove();
	}

	public static void rollbackTransaction() throws SQLException {
		Connection con = tl.get();
		if (con == null)
			throw new SQLException("回滚事务异常");
		con.rollback();
		con.close();
		con = null;
		tl.remove();
	}

	public static void releaseConnection(Connection connection)
			throws SQLException {
		Connection con = tl.get();
		if (connection != con) {
			if (connection != null && !connection.isClosed()) {
				connection.close();
			}
		}
	}
	public static void main(String[] args) {
		System.out.println(getConnection());
	}

}
package com.sundroid.utils.common;

import java.io.IOException;
import java.util.Properties;

public class PropertiesUtils {

	static Properties prop = new Properties();


	public static boolean loadFile(String fileName) {
		try {
			prop.load(PropertiesUtils.class.getClassLoader()
					.getResourceAsStream(fileName));
		} catch (IOException e) {
			e.printStackTrace();
			return false;
		}
		return true;
	}
	
	


	public static String getPropertyValue(String key) {
		return prop.getProperty(key);
	}
	public static void main(String[] args) {
		PropertiesUtils.loadFile("jdbc.properties");
		String URL = PropertiesUtils.getPropertyValue("url");
		System.out.println(URL);

	}

}


下面是配置文件,这里用得是oracle文件,如果是mysql  只需要在配置文件里修改相应信息(driverClassName、url)


driverClassName=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@***.***.***.***:1521:orcl
username=******
password=******


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值