,,JDBC中Statement和Preparement的使用讲解

,,JDBC中Statement和Preparement的使用讲解

今天,边肖将与你分享一个关于在JDBC使用陈述和准备的解释。边肖觉得内容挺好的,现在分享给大家,很有参考价值。有需要的朋友一起看看吧。

语句对象用于执行SQL语句。

PreparedStatement:预编译的语句对象,是语句的子接口。

一.性能和代码编写的简洁程度方面

它允许数据库预编译SQL语句(这些SQL语句通常是有参数的),以后每次只需要改变SQL命令的参数,这样就避免了数据库每次都要编译SQL语句,提高了性能。例如连接数据库部分

//驱动、url、用户、passwd等。已经被定义了。

//加载驱动程序

Class.forName(驱动程序);

//获取连接

connection conn=driver manager . get connection(URL,user,passwd);

Statement:

//创建带有连接的语句

语句stmt=conn.createStatement() {

//插入100条记录的100条SQL语句

for(int I=0;i 100i ) {

stmt . execute update(' insert into student values(' null,' aaa' i ' ',90));

}

}

PreparedStatement:

//创建带有连接的PreparedStatement

PreparedStatement pstmt=conn,getprepared statement(' insert into student _ table values(null, 90)') {

//设置参数,传入参数100次而不是SQL语句100次。

for(int I=0;i 100i ) {

Pstmt.setString(1,' name ' I);

//执行

PS TMT . execute update();

}

}

通过运行上面的代码,可以发现PreparedStatement插入100条记录比语句插入100条记录花费的时间要少。而且在代码中可以看到,带参数的SQL语句需要拼接参数来创建语句对象,但是PreparedStatement会简单很多。

完成代码步骤github:StatementPrepareStatement

运行结果:

二.安全方面

由于PreparedStatement不需要拼接,也可以防止SQL注入,提高安全性。

注意:SQL注入是一种黑客入侵方法,从SQL语句的漏洞入侵。

例如,对于一个登录页面,我们从表单中获取参数,并将它们与数据库中的数据进行比较。当比较该帐户的密码时,登录成功:

Statement:

//传入的参数username和passwd是提交的信息

String sql='select * from users ' ',其中username=' ' username ' ',password=' ' passwd

RS=stmt . execute query(SQL);

如果在用户名框中输入了:'或true或',则拼接的SQL语句将变为:

select * from users其中用户名=“”或true或“”,desc=“”;

如果结果为真,SQL会将其视为直接量,那么登录会直接成功。

PreparedStatement:

//传入的参数username和passwd是提交的信息

prepared statement pstmt=conn . getprepared statement(' select * from users where username=?和密码=?');

pstmt.setString(1,用户名);

pstmt.setString(2,passwd);

从上面可以看出,PreparedStatement比Statement有三个优点:

1.预编译,性能良好

2.无拼接,易写易读

3.预防SQL注入和提高安全性

总结

这就是本文的全部内容。希望这篇文章的内容对你的学习或工作有一定的参考价值。谢谢你的支持。如果你想了解更多,请查看下面的相关链接。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • word文档无法编辑是怎么回事-
  • 华为手机怎么设置返回键(华为手机下面的三个按键设置方法)
  • lumia950怎么样(Lumia950体验分享)
  • otg连接是什么意思(OTG连接手机方法)
  • 笔记本触摸板怎么右键(笔记本电脑触控板手势操作设置)
  • 真我x7怎么样(realme X7 系列体验)
  • 苹果的A16处理器有多强(苹果的A16处理器的介绍)
  • 小米互传怎么用(小米手机的连接与共享教程)
  • 怎么设置电脑桌面图标自动对齐 设置电脑桌面自动整理图标的方法
  • 宽带错误651最简单解决方法(处理宽带错误651的措施)
  • 大学生手机有什么推荐(大学生换手机攻略)
  • 天玑1100和骁龙778g哪个好(骁龙778G、天玑900、天玑1100购选建议)
  • yum update 升级报错的解决办法
  • Windows10禁用屏保教程
  • 连接wifi显示无互联网连接怎么办(无线连上了却不能上网处理绝招)
  • 留言与评论(共有 条评论)
       
    验证码: