Statement
Statement用于执行不带参数的简单SQL语句,并返回它所生成结果的对象,每次执行SQL语句时,数据库都要编译该SQL语句。下面是一个最简单的SQL语句:
Statement stmt = conn.getStatement();
stmt.executeUpdate("insert into client values('aa','aaaa')");
PreparedStatement
PreparedStatement 表示预编译的SQL语句的对象,用于执行带参数的预编译SQL语句。
CallableStatement
CallableStatement则提供了用来调用数据库中存储过程的接口,如果有输出参数要注册,说明是输出参数。CallableStatement由prepareCall()方法所创建,它为所有DBMS(数据库管理系统)提供了一种以标准形式调用已存储过程的方法。
与Statement相比,PreparedStatement具有以下优点:
- 效率更高
- 代码可读性和可维护性更好
- 安全性更好