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);