api中的解释
Statement
-
用于执行静态SQL语句并返回其生成的结果的对象。
默认情况下,每个
Statement
对象只能有一个ResultSet
对象同时打开。 因此,如果一个ResultSet
对象的读取与另一个对象的读取交错,则ResultSet
对象必须由不同的Statement
对象生成。 在所有执行方法Statement
接口隐式关闭当前ResultSet
声明的对象,如果一个开放的存在。
PreparedStatement
- 表示预编译的SQL语句的对象。
SQL语句已预编译并存储在
PreparedStatement
对象中。 然后可以使用该对象多次有效地执行此语句
CallableStatement
- 用于执行SQL存储过程的界面。 JDBC API提供了存储过程SQL转义语法,允许以标准方式为所有RDBMS调用存储过程。 此转义语法包含一个结果参数和不包含结果参数的表单。 如果使用,结果参数必须注册为OUT参数。 其他参数可用于输入,输出或两者。 参数按顺序依次引用,第一个参数为1。
{?= call <procedure-name>[(<arg1>,<arg2>, ...)]} {call <procedure-name>[(<arg1>,<arg2>, ...)]}
常用方法
-
-
executeLargeUpdate()
执行在该SQL语句
PreparedStatement
对象,它必须是一个SQL数据操纵语言(DML)语句,如INSERT
,UPDATE
或DELETE
; 或不返回任何内容的SQL语句,例如DDL语句
-
-
-
executeQuery()
执行此
PreparedStatement
对象中的SQL查询,并返回查询PreparedStatement
的ResultSet
对象。
-
Statement :有多少个查询就生成多少个SQL语句发送到数据库
PreparedStatement(从Statement继承)用于执行带/不带参数的预编译SQL语句,可以阻止常见的SQL注入式攻击,只生成一次执行计划。它的效率会更高。
CallableStatement(从PreparedStatement继承) 用于执行对数据库已存储过程的调用