數據庫連接通用類

       作者:sundroid

       個人站點:sundroid.cn    郵箱: [email protected]   微博: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=******


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章