由于在连接数据库时,许多代码重复,故将重复代码封装成为一个工具类,简化数据库连接的操作。
package com.yyl.utils;
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;
public class JdbcUtils {
private static String dirver;
private static String url;
private static String user;
private static String password;
static {
try {
// 创建属性对象
Properties pro = new Properties();
// 获取类加载器
ClassLoader classLoader = JdbcUtils.class.getClassLoader();
// 通过类加载器 获取资源所在位置 统一资源标识符
URL res = classLoader.getResource("jdbc.properties");
// 得到资源所在位置
String path = res.getPath();
System.out.println(res.getPath());
// 加载属性文件
pro.load(new FileReader(path));
// 获取相应属性值
dirver = pro.getProperty("dirver");
url = pro.getProperty("url");
user = pro.getProperty("user");
password = pro.getProperty("password");
Class.forName(dirver);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 返回连接对象
*
* @return
*/
public static Connection getConnection() {
try {
return DriverManager.getConnection(url, user, password);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
/**
* 释放资源
* @param conn
* @param stat
*/
public void close(Connection conn, Statement stat) {
if(stat!=null)
try {
stat.close();
} catch (SQLException e) {
e.printStackTrace();
}
if(conn!=null)
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
* 释放资源
* @param conn
* @param stat
* @param rs
*/
public void close(Connection conn, Statement stat, ResultSet rs) {
if(rs!=null)
try {
rs.close();
} catch (SQLException e1) {
e1.printStackTrace();
}
if(stat!=null)
try {
stat.close();
} catch (SQLException e) {
e.printStackTrace();
}
if(conn!=null)
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
属性文件
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/数据库名
user=root
password=密码