jdbc框架第二篇,方便以後使用

package com.zfsoft.setup.intl.commons.jdbc;


import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.List;
import java.util.ArrayList;


public abstract class HsqlBaseDao<T extends Object> {
/**
* select a,b,c,from table where username='hao' limit 0,20

* @param sql
* @param para
* @param rsObjCall
* @return
*/
protected List<T> executeQueryList(String sql, String[] para,
ResultObjectCall<T> rsObjCall) {
List<T> list = new ArrayList<T>();
Connection conn = null;
PreparedStatement pstm = null;
ResultSet rs = null;
try {
conn = HsqlConnectionFactory.getConnectionDB();
pstm = conn.prepareStatement(sql);
if (para != null) {
for (int i = 0; i < para.length; i++) {
if (para[i] == null)
para[i] = "";
pstm.setObject(i + 1, para[i]);
}
}
rs = pstm.executeQuery();
while (rs.next()) {
list.add(rsObjCall.getResultObject(rs));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
this.destoryResource(conn, pstm,null, rs);
}
return list;
}


/**
* select a,b,c from table where id=25

* @param sql
* @param para
* @param objCall
* @return
*/
protected T executeQuery(String sql, String[] para,
ResultObjectCall<T> objCall) {
T t = null;
Connection conn = null;
PreparedStatement pstm = null;
ResultSet rs = null;
try {
conn = HsqlConnectionFactory.getConnectionDB();
pstm = conn.prepareStatement(sql);
if (para != null) {
for (int i = 0; i < para.length; i++) {
if (para[i] == null)
para[i] = "";
pstm.setObject(i + 1, para[i]);
}
}
rs = pstm.executeQuery();
if (rs.next()) {
t = objCall.getResultObject(rs);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
this.destoryResource(conn, pstm,null, rs);
}
return t;
}


/**
* select count(id) from table where id=? select a from table where id=?

* @param sql
* @param para
* @return
*/
protected Object getColumn(String sql, String[] para) {
Object obj = null;
Connection conn = null;
PreparedStatement pstm = null;
ResultSet rs = null;
try {
conn = HsqlConnectionFactory.getConnectionDB();
pstm = conn.prepareStatement(sql);
if (para != null) {
for (int i = 0; i < para.length; i++) {
if (para[i] == null)
para[i] = "";
pstm.setObject(i + 1, para[i]);
}
}
rs = pstm.executeQuery();
if (rs.next()) {
obj = rs.getObject(1);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
this.destoryResource(conn, pstm, null,rs);
}
return obj;
}


/**
* update table set col=? where id=?

* @param sql
* @param para
* @throws SQLException
*/
protected void executeUpdate(String sql) {
Connection conn = null;
Statement st = null;
try {
conn = HsqlConnectionFactory.getConnectionDB();
st = conn.createStatement();
st.addBatch(sql);
st.addBatch("SHUTDOWN");
st.executeBatch();
} catch (SQLException e) {
e.printStackTrace();
} finally {
this.destoryResource(conn, null,st,null);
}
}


/**
* insert into diary(userid,username,title,content)values(?,?,?,?)

* @param sql
* @param para
* @return
* @throws SQLException
*/
protected void executeInsert(String sql) {
Connection conn = null;
Statement st = null;
try {
conn = HsqlConnectionFactory.getConnectionDB();
st = conn.createStatement();
st.addBatch(sql);
st.addBatch("SHUTDOWN");
st.executeBatch();
} catch (Exception e) {
e.printStackTrace();
} finally {
this.destoryResource(conn, null, st, null);
}
}


/**
* destoryResource

* @param conn
* @param pstm
* @param rs
*/
private void destoryResource(Connection conn,PreparedStatement pstm,Statement st,
ResultSet rs) {
try {
if (pstm != null)
pstm.close();
if (rs != null)
rs.close();
if (st != null)
st.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
}
}
}
發佈了62 篇原創文章 · 獲贊 8 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章