步骤1:使用PreparedStatement
步骤2:PreparedStatement的优点1-参数设置
步骤3:PreparedStatement的优点2-性能表现
步骤4:PreparedStatement的优点3-防止SQL注入式攻击
步骤5:练习-性能比较
步骤6:答案-性能比较
步骤 1 : 使用PreparedStatement
和 Statement一样,PreparedStatement也是用来执行sql语句的
与创建Statement不同的是,需要根据sql语句创建PreparedStatement
除此之外,还能够通过设置参数,指定相应的值,而不是Statement那样使用字符串拼接
注: 这是JAVA里唯二的基1的地方,另一个是查询语句中的ResultSet也是基1的。
|
步骤 2 : PreparedStatement的优点1-参数设置
Statement 需要进行字符串拼接,可读性和维护性比较差
|
PreparedStatement 使用参数设置,可读性好,不易犯错
|
|
步骤 3 : PreparedStatement的优点2-性能表现
PreparedStatement有预编译机制,性能比Statement更快
|
步骤 4 : PreparedStatement的优点3-防止SQL注入式攻击
假设name是用户提交来的数据
|
使用Statement就需要进行字符串拼接
拼接出来的语句是:
|
因为有OR 1=1,这是恒成立的
那么就会把所有的英雄都查出来,而不只是盖伦
如果Hero表里的数据是海量的,比如几百万条,把这个表里的数据全部查出来
会让数据库负载变高,CPU100%,内存消耗光,响应变得极其缓慢
而PreparedStatement使用的是参数设置,就不会有这个问题
|
更多内容,点击了解: https://how2j.cn/k/jdbc/jdbc-preparedstatement/388.html