目录
为什么选择使用PrepareStatement而不选择Stament?
为什么选择使用PrepareStatement而不选择Stament?
Statement也可以用来进行操作数据,但是我们更推荐使用PreParedStatement主要从两个方面来讲:
一:使用Statement操作数据表存在弊端:
问题1:存在拼串操作,繁琐
问题2:存在SQL注入问题
// SQL 注入是利用某些系统没有对用户输入的数据进行充分的检查,而在用户输入数据中注入非法的 SQL 语句段或命令(如:SELECT user, password FROM user_table WHERE user='a' OR 1 = ' AND password = ' OR '1' = '1') ,从而利用系统的 SQL 引擎完成恶意行为的做法。
对于 Java 而言,要防范 SQL 注入,只要用 PreparedStatement(从Statement扩展而来) 取代 Statement 就可以了。
二:PreParedStatement与Statement相比更有优势:
1. 代码的可读性和可维护性。
2.PreparedStatement能最大可能提高性能
3.PreparedStatement 可以防止 SQL 注入
所以在我们进行数据操作的流程就如下图所示: