寫jdbc的工具類 java
阿新 • • 發佈:2018-12-15
為什麼要有工具類
jdbc 連線資料庫中很常用,但程式碼量又多,所以編寫一個工具類是很重要的。
之前我們已經寫了jdbc連線的程式碼 這裡我們就寫 一個工具類並實現
程式碼
public class JDBCUtil {
static String driverClass = null;
static String url = null;
static String name = null;
static String password= null;
static{
try {
//1. 建立一個屬性配置物件
Properties properties = new Properties();
//如果使用直接new的格式 ,需要把檔案放在專案下
//InputStream is = new InputStream("....");
//使用類載入器,去讀取src底下的資原始檔。 後面在servlet
InputStream is = JDBCUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");
//匯入輸入流。
properties.load(is);
//讀取屬性
driverClass = properties.getProperty ("driverClass");
url = properties.getProperty("url");
name = properties.getProperty("name");
password = properties.getProperty("password");
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 獲取連線物件
* @return
*/
public static Connection getConn(){
Connection conn = null;
try {
Class.forName(driverClass);
java.sql.DriverManager.registerDriver(new Driver());
conn = DriverManager.getConnection(url, name, password);
} catch (Exception e) {
e.printStackTrace();
}
return conn;
}
/**
* 釋放資源
* @param conn
* @param st
* @param rs
*/
//有返回的 如查詢類的操作
public static void release(Connection conn , Statement st , ResultSet rs){
closeRs(rs);
closeSt(st);
closeConn(conn);
}
//對於更新等類的操作
public static void release(Connection conn , Statement st ){
closeSt(st);
closeConn(conn);
}
private static void closeRs(ResultSet rs){
try {
if(rs != null){
rs.close();
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
rs = null;
}
}
private static void closeSt(Statement st){
try {
if(st != null){
st.close();
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
st = null;
}
}
private static void closeConn(Connection conn){
try {
if(conn != null){
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
conn = null;
}
}
}
其中我們用到了properties 也是我們常說的配置檔案 在這裡我們一般配置連入引數 和 密碼等,以後就不用修改程式。
測試
public static void main(String[] args) {
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
//1. 獲取連線物件
conn = JDBCUtil.getConn();
//2. 根據連線物件,得到statement
st = conn.createStatement();
//3. 執行sql語句,返回ResultSet
String sql = "select * from t_stu";
rs= st.executeQuery(sql);
//4. 遍歷結果集
while(rs.next()){
String name = rs.getString("name");
....
}
} catch (Exception e) {
e.printStackTrace();
}finally {
JDBCUtil.release(conn, st, rs);
}
}