声明和Preparement怎么在JDBC中使用

  介绍

这篇文章给大家介绍声明和Preparement怎么在JDBC中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

声明对象是用来执行SQL语句的

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

<强>一。性能和代码编写的简洁程度方面

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

//已定义好司机,url、用户、密码等//加载驱动   forname(司机);//获得连接   Connection  conn =, DriverManager.getConnection (url,用户,密码);

<强>声明:

//用连接创建一个声明   Statement  stmt =, conn.createStatement (), {//100条SQL才能语句来插入100条记录   ,,(int 小姐:=,0;小姐:& lt;, 100;我+ +),{   ,,,stmt.executeUpdate (“insert  into  student 价值(“,+,“零,,& # 39;aaa", +,小姐:+,“& # 39;,90)“);   ,,}   }

<>强PreparedStatement:

//用连接创建一个PreparedStatement   PreparedStatement  pstmt =,康涅狄格州,getPreparedStatement (“insert  into  student_table 值(空,,?,,90)“),{//才能设置参数,100次传入参数而不是100次传入SQL语句   ,,(int 小姐:=,0;小姐:& lt;, 100;我+ +),{   ,,,pstmt.setString(1,“姓名“,+,i);//才能执行   pstmt.executeUpdate才能();   ,,}   }

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

完整代码移步GitHub: Statement& PrepareStatement

运行结果:

声明和Preparement怎么在JDBC中使用“> </p> <p> <强>二。安全方面</强> </p> <p>又因为PreparedStatement不需要拼接,还可以防止SQL注入从而提高安全性<br/> </p> <p>注:SQL注入是一种饼干入侵方式,从SQL语句的漏洞入侵<br/> </p> <p>比如一个登录页面,我们在获取表单传来的参数,将其与数据库中的数据进行比对,比对有该账号密码时则登录成功:</p> <p> <强>声明:</强> </p> <pre类=//传入参数的用户名和密码是提交的信息   String  sql =,“select  *,得到users “, +,“where  username =, & # 39;,,, +, username  +,“, & # 39;,以及密码=,& # 39;,,,+,passwd  +,“, & # 39;   rs =, stmt.executeQuery (sql);

如果在用户名框中输入了:& # 39;或真实或# 39;,那么,拼接后的sql语句就变成了:

select  *,得到users  where  username =, & # 39;, & # 39;,趁机true 或是& # 39;,& # 39;,以及desc =, & # 39;, & # 39;;

结果为真正被sql当成直接量那么直接会登录成功

<强> PreparedStatement:

//传入参数的用户名和密码是提交的信息   PreparedStatement  pstmt =, conn.getPreparedStatement (“select  *,得到users  where  username =, ?,以及密码=,?“);   pstmt.setString(1,用户名);   pstmt.setString (2, passwd);

从上述可以看出PreparedStatement相较于声明有三个好处:

<李>

1。预编译性,能较好

<李>

2。不用拼接,易编写易读懂

<李>

3。防止SQL注入,提高安全性

关于声明和Preparement怎么在JDBC中使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

声明和Preparement怎么在JDBC中使用