龙空技术网

JDBC中使用预编译Statement以及它的优点

多肉与月季 244

前言:

当前各位老铁们对“预编译的优点”大约比较注重,各位老铁们都需要剖析一些“预编译的优点”的相关文章。那么小编在网络上汇集了一些对于“预编译的优点””的相关知识,希望各位老铁们能喜欢,兄弟们快快来学习一下吧!

JDBC中PreparedStatement与Statement一样是用于执行SQL语句的,比如增加,删除

1. 使用PreparedStatement

和 Statement一样,PreparedStatement也是用来执行sql语句的,与创建Statement不同的是,需要根据sql语句创建PreparedStatement。除此之外,还能够通过设置参数,指定相应的值,而不是Statement那样使用字符串拼接:

2. PreparedStatement的优点1 - 参数设置

Statement 需要进行字符串拼接,可读性和维护性比较差

PreparedStatement 使用参数设置,可读性好,不易犯错

3. PreparedStatement的优点2 - 性能表现

PreparedStatement有预编译机制,性能比Statement更快

4. PreparedStatement的优点3 - 防止SQL注入式攻击

假设name是用户提交来的数据

使用Statement就需要进行字符串拼接

拼接出来的语句是:

因为有OR 1=1,这是恒成立的

那么就会把所有的人都查出来,而不只是IronMan

如果表里的数据是海量的,比如几百万条,把这个表里的数据全部查出来

会让数据库负载变高,CPU100%,内存消耗光,响应变得极其缓慢

而PreparedStatement使用的是参数设置,就不会有这个问题

最后,我自己是一名从事了多年开发的JAVA老程序员,辞职目前在做自己的java私人定制课程,今年年初我花了一个月整理了一份最适合2019年学习的java学习干货,可以送给每一位喜欢java的小伙伴,想要获取的可以关注我的头条号并在后台私信我:java,即可免费获取。

作者: GatesMa

来源:CSDN

标签: #预编译的优点