该用户从未签到
|
1. ResultSet executeQuery(String sql); 执行SQL查询,并返回ResultSet 对象。
) u( t) w$ [8 L7 [( I! y% O2 Y. R6 H; G 2.int executeUpdate(String sql); 可执行增,删,改,返回执行受到影响的行数。
" n, g- o6 p. x7 `6 L4 n+ ?( a% w 3. boolean execute(String sql); 可执行任何SQL语句,返回一个布尔值,表示是否返回ResultSet 。/ |) s$ v8 e: j( _0 D
execute是executeQuery和executeUpdate的综合.
# a2 ~ J* e7 ~1 m9 o-----
3 s! ~2 {; L* Z; CexecuteUpdate() 这是 PreparedStatement 接口中的方法
3 P* R7 _4 I$ {% q4 l+ T& q, _executeUpdate(String sql) 这是 PreparedStatement 从父接口 Statement 中继承过来的方法
* Z' d1 c7 P [8 j* l' ?0 a; m- a, h5 d
executeUpdate() 中执行 SQL 语句需要在创建 PerparedStatement 时通过 Connection 的 prepareStatement(String sql) 方法中写出,因为 PerparedStatement 中的 SQL 语句数据库需要进行预编译和缓存,因此要在创建 PerparedStatement 对象时给出 SQL 语句。; o; I9 ~$ i4 ]4 \
9 u2 d* ]* n% u5 l( X0 L) `而 executeUpdate(String sql) 是 Statement 中的方法,参数中的 SQL 语句只是提交给数据库去执行,并不需要预编译。+ U! V" T! `) L2 `2 F6 l
$ f) O8 \7 s' {( y# L/ }
如果 SQL 语句中有 ? 占位符,那么在设置好占位符中的值后,必须使用 executeUpdate() 执行。而 executeUpdate(String sql) 只是提交一个 SQL 语句,且这个语句中不能带有 ? 占位符。, T1 \4 I3 A: P" u; G+ u: S! Q
|
|