该用户从未签到
|
1. ResultSet executeQuery(String sql); 执行SQL查询,并返回ResultSet 对象。
0 M# E, f- N8 z% k 2.int executeUpdate(String sql); 可执行增,删,改,返回执行受到影响的行数。
; W/ f& e7 F. D3 v6 z/ P4 `1 l 3. boolean execute(String sql); 可执行任何SQL语句,返回一个布尔值,表示是否返回ResultSet 。
0 b }0 G5 {; Yexecute是executeQuery和executeUpdate的综合.
6 @! b P1 q6 z7 }-----
6 p% {8 R0 E2 d* jexecuteUpdate() 这是 PreparedStatement 接口中的方法
2 E$ i; y4 s$ v) d0 R8 ?4 f! q; C1 _, sexecuteUpdate(String sql) 这是 PreparedStatement 从父接口 Statement 中继承过来的方法
5 j% V/ L' ~' J$ R4 Z
' r/ h, N/ u3 F6 p; jexecuteUpdate() 中执行 SQL 语句需要在创建 PerparedStatement 时通过 Connection 的 prepareStatement(String sql) 方法中写出,因为 PerparedStatement 中的 SQL 语句数据库需要进行预编译和缓存,因此要在创建 PerparedStatement 对象时给出 SQL 语句。
7 W U* A& _4 l% w r+ i* y& O. x1 Q# a! z
而 executeUpdate(String sql) 是 Statement 中的方法,参数中的 SQL 语句只是提交给数据库去执行,并不需要预编译。
1 }& a: W4 i- E; ~0 G) V' u- P+ C
6 ~$ k4 G" ^1 ]2 H$ D. l如果 SQL 语句中有 ? 占位符,那么在设置好占位符中的值后,必须使用 executeUpdate() 执行。而 executeUpdate(String sql) 只是提交一个 SQL 语句,且这个语句中不能带有 ? 占位符。
2 ^ }$ k5 T! k) f |
|