数据库连接被用于向数据库服务器发送命令和SQL语句,在连接建立后,需要对数据库进行访问,执行sql语句在java.sql包中有3个接口分别定义了对数据库的调用的不同方式:Statement,PreparedStatement,CallableStatemen。
PreparedStatement接口是Statement的子接口,它表示一条预编译过的SQL语句,有如下好处:
1代码的可读性和可维护性
2 PreparedStatement能提高性能:PreparedStatement执行sql后为预编译命令。因为预编译语句有可能被重复调用,所以语句在被DBServer的编译器编译后的执行代码被缓存下来,那么下次调用相同的预编译语句就不需要编译,只要将参数直接传入编译过的语句执行代码中就会得到执行。在statement语句中即使是相同操作但因为数据内容不一样所以整个语句本身不能匹配没有缓存语句的意义,这样每执行一次都要对传入的语句编译一次。PreparedStatement可以很方便进行数据的批量操作。
3.PreparedStatement可以防止SQL注入
4.此外PreparedStatement可以对Blob相关数据进行操作,因为在操作这些数据时需要对流进行操作,PreparedStatement提供相关方法进行操作。