PreparedStatement:
Statement主要執行靜態的SQL語句。效率差。PreparedStatement用於語法結果相同,進行預編譯,參數不同的語句。(預防注入攻擊。)主要的是:execute、executeQuery、executeUpdate不需要參數。
PreparedStatement ps = con.prepareStatement("update emp set job=? where name = ?");
ps.setString(1,"ANALYST");
ps.setString(2,"ll");
ps,executeUpdate();
注入攻擊:SQL注入攻擊只對Statement有效,對PreparedStatement無效,因爲PreparedStatement不允許在插入參數時改變SQL語句的邏輯結構。
ResultSetMetaData:數據結果集的元數據(字段名)。從數據結果集中獲取。
例如:
ResultSetMetaData rsmd = rs.getMetaData();
int columnCount = rsmd.getColumnCount();
String columnName = null;
for(int i=1; i<columnCount; i++) {
columnName = rsmd.getColumnName(i);
}
可滾動的結果集,ResultSet;Statement stmt = conn.createStatement(type,concurrency);