作者: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=******