1.statement 、PreparedStatement和CallableStatement都是接口。
2.Statement 继承自Wrapper、Preparedstatement继承自statement、callablestatement继承自preparedstatement。
3.statement接口提供了执行语句和获取结果的基本方法。preparedstatement接口添加了处理IN参数的方法。callablestatement接口添加了处理OUT参数的方法。
4.statement:普通的不带参的查询SQL;支持批量更新,批量删除;
preparedstatement:可变参数的SQL,编译一次,执行多次,效率高;安全性好,防止Sql注入等问题;支持批量更新,批量删除。
callablestatement:继承自preparedstatement,支持带参数的SQL操作;支持调用存储过程,提供了对输出和输入/输出参数的支持。
Statement每次执行sql语句,数据库都要执行sql语句的编译,最好用于仅执行一次查询并返回结果的情形,效率高于preparedstatement。
statement中的preparedstatement的占位符对应着即将与之对应当值,并且一个占位符只能对应一个值,如果能对应多个就会引起混淆。sql语句是确定的,那么一个占位符必定只能对应一个值。