编写工具类为了实现代码的复用性
package cn.itcast.util;
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.*;
import java.util.Properties;
/*
* JDBC工具类
* */
public class jdbcutils {
private static String url;
private static String user;
private static String password;
private static String driver;
/*
文件的的读取只读取一次就可以拿到这些值。使用静态代码块
* */
static {
//读取资源获取值
//创建Properties集合类
Properties pro = new Properties ();
//获取src路径下的文件使用ClassLoader类加载器
ClassLoader classLoader = jdbcutils.class.getClassLoader ();
URL res = classLoader.getResource ("jdbc.properties");
String path = res.getPath ();
//加载文件
try {
pro.load (new FileReader (path));
} catch (IOException e) {
e.printStackTrace ();
}
//获取数据,赋值
url = pro.getProperty ("url");
user = pro.getProperty ("user");
password = pro.getProperty ("password");
driver = pro.getProperty ("driver");
//注册驱动
try {
Class.forName (driver);
} catch (ClassNotFoundException e) {
e.printStackTrace ();
}
}
/*
* 获取连接
* */
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection (url,user,password);
}
/*
* 释放资源
* */
public static void close(Statement sta,Connection conn) {
if (sta != null) {
try {
sta.close ();
} catch (SQLException e) {
e.printStackTrace ();
}
}
if (conn != null) {
try {
conn.close ();
} catch (SQLException e) {
e.printStackTrace ();
}
}
}
/*
* 重载释放资源
* */
public static void close(ResultSet rs,Statement sta, Connection conn) {
if(rs!=null){
try {
rs.close ();
} catch (SQLException e) {
e.printStackTrace ();
}
}
if (sta != null) {
try {
sta.close ();
} catch (SQLException e) {
e.printStackTrace ();
}
}
if (conn != null) {
try {
conn.close ();
} catch (SQLException e) {
e.printStackTrace ();
}
}
}
}