zoukankan      html  css  js  c++  java
  • 相对于Statement,PreparedStatement的优点是什么?

    在jdbc组件中,尽量使用PreparedStatement而避免使用Statement,原因如下:


    1、PreparedStatement可读性更高,维护性更强(Statement需要动态拼接);


    2、PreparedStatement在被编译后会被缓存下来,下次调用相同的预编译语句时不需要重新编译,只需传入对应参数就行;而对于Statement来说,及时insert into tb_name values(1,"11")、insert into tb_name values(1,"12"),由于插入的数据不同,需要重新编译语句;


    3、Statement有可能会有sql注入风险:

    1.  ps.executeUpdate(select * from tb_name where username='"+name+"' and passwd='"+passwd+"');

    如果将"or'1'='1'作为参数传入passwd,则任何用户名都可验证成功,或者直接传入drop table tb_name,那整张表都有被删除的可能。而 PreparedStatement是预编译的,后续传入的数据不会跟语句进行匹配关系。

  • 相关阅读:
    queue
    hiho1095(二分)
    uvaliva3942(trie树)
    hiho1014(trie树)
    uvalive4329(树状数组)
    Dropping tests POJ
    linux mysql命令
    linux文件系统和mount(硬盘,win分区,光驱,U盘)
    linux共享windows资料
    linux常用命令
  • 原文地址:https://www.cnblogs.com/csk001/p/14222695.html
Copyright © 2011-2022 走看看