执行SQL对象PreparedStatement
PreparedStatement对象使用时,数据库系统对执行SQL语句进行预编译处理,预编译SQL语句将在未来的使用中被重用。与 Statement对象相比,PreparedStatement对象操作多条SQL语句的效率更高。
经过预编译并存储在PreparedStatement对象中的SQL语句,通过Connection类的prepareStatement()方法创建。
示例代码:
//创建执行预编译SQL语句对象PreparedStatement
PreparedStatement preStatement = conn.prepareStatement(“预编译SQL语句”);
预处理PreparedStatement对象相对于静态Statement对象的优势:
PreparedStatement可以动态传入参数值
PreparedStatement比Statement更快 PreparedStatement会将SQL语句预编译在数据库系统中,执行计划同样会被缓存起来,它允许数据库做参数化查询。使用预处理语句比普通的Statement查询更快,因做的工作更少(数据库对 SQL 语句的分析、编译、优化已经在第一次查询前完成了)
PreparedStatement可以防止SQL注入式攻击 PreparedStatement在使用参数化查询的情况下,数据库系统不会将参数的内容视为SQL指令的一部分来处理,而是在数据库完成SQL指令的编译后,才套用参数运行,因此就算参数中含有破坏性的指令,也不会被数据库所运行。