jdbc操作數據庫時,最基本的三種接口是Statement PReparedStatment CallableStatement
(1)Statement
createStatement()
createStatement(intresultSetType, intresultSetConcurrency)
createStatement(intresultSetType, intresultSetConcurrency, intresultSetHoldability)(JDBC 3.0)
resultSetType- 結果集類型,它是ResultSet.TYPE_FORWARD_ONLY(不可滾動結果集)、ResultSet.TYPE_SCROLL_INSENSITIVE(可滾動結果集,受數據庫更新影響的)或ResultSet.TYPE_SCROLL_SENSITIVE(可滾動結果集,不受數據庫更新影響的)之一
resultSetConcurrency- 并發類型;它是ResultSet.CONCUR_READ_ONLY(只讀結果集)或ResultSet.CONCUR_UPDATABLE(可更新結果集)之一。
resultSetHoldability- 以下ResultSet常量之一:ResultSet.HOLD_CURSORS_OVER_COMMIT(提交修改后,不關閉結果集)或ResultSet.CLOSE_CURSORS_AT_COMMIT(提交修改后,關閉結果集)
說明:resultSetType,resultSetConcurrency,resultSetHoldability的使用是有限制的。
有的數據庫并不支持可滾動結果集,可更新結果集,提交修改后不關閉結果集??梢酝ㄟ^conn.getMetaData()來獲取DataBaseMetaData對象判斷是否支持上述功能。
(2)PreparedStatement
prepareStatement(Stringsql)
prepareStatement(Stringsql, intresultSetType, intresultSetConcurrency)
prepareStatement(Stringsql, intresultSetType, intresultSetConcurrency, intresultSetHoldability)
prepareStatement(Stringsql, intautoGeneratedKeys)
prepareStatement(Stringsql, int[]columnIndexes)
prepareStatement(Stringsql,String[]columnNames)
autoGeneratedKeys可以為Statement.RETURN_GENERATED_KEYS/NO_GENERATED_KEYS
eg:PrepareStatement st=conn.prepareStatemnt(sql,Statement.RETURN_GENERATED_KEYS);
st.executeQuery();
ResultSet rs=st.getGeneratedKeys();
if (rs.next()){
int key=ts.getInt(1);
}
(3)CallableStatement
prepareCall(Stringsql)
prepareCall(Stringsql, intresultSetType, intresultSetConcurrency)
prepareCall(Stringsql, intresultSetType, intresultSetConcurrency, intresultSetHoldability)
新聞熱點
疑難解答