JDBC02-Statement,PreparedStatement,ResultSet

  1. stmt.executeQuery():执行查询,返回结果集( ResultSet)
    int stmt.executeUpdate(String sql);// 发送insert,update,delete语句, 返回值int表示影响数据库表的行数
  2. Statement 主要用于执行静态SQL语句,即内容固定不变的SQL语句,Statement 每执行一次都要对传入的SQL语句编译一次,效率较差
    JDBC02-Statement,PreparedStatement,ResultSet_第1张图片
  3. PreparedStatement 接口,继承 Statement,使用 PreparedStatement 时,SQL语句已提前编译,三种常用方法 execute,executeQuery和executeUpdate已被更改,以使之不再需要参数
  4. PreparedStatement 实例包含已事先编译的 SQL 语句,SQL 语句可有一个或多个参数, 参数的值在 SQL 语句创建时未被指定,该语句为每个 IN 参数保留一个问号(“?”)作为占位符
  5. con.prepareStatement(sql语句);创建PreparedStatement对象,ps.set类型(?的索引,?的值);设置参数
    JDBC02-Statement,PreparedStatement,ResultSet_第2张图片
  6. 结果集( ResultSet):用来存储查询语句返回的结果集
    boolean rs.next(); 指针向下移动一行,有数据返回true 否则返回false
    rs.get类型(字段名);可以得到指定字段名的值
    JDBC02-Statement,PreparedStatement,ResultSet_第3张图片
  7. JDBC对日期的支持
    *java.sql.Date 年月日
    *java.sql.Time 时分秒
    *java.sql.Timestamp 年月日时分秒
    上述三个日期都java.util.Date 的子类
  8. 元数据(MetaDate):数据的本质,数据的描述/概述,用来描述数据的数据 ,结果集元数据(ResultSetMetaDate):用来描述结果集的数据,如:返回的结果有几列,几行,列的类型是什么等等…
  9. 对JDBC而言,SQL注入攻击只对Statement有效,对PreparedStatement无效,因为PreparedStatement不允许在插入参数时改变SQL语句的逻辑结构
    JDBC02-Statement,PreparedStatement,ResultSet_第4张图片
    连接池
    JDBC02-Statement,PreparedStatement,ResultSet_第5张图片

你可能感兴趣的:(sql,数据库,jdbc)