51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Java jdbc-PreparedStatement防止sql注入

PreparedStatement防止sql注入

在之前的一篇文章当中,写了java jdbc,mysql数据库连接的一篇文章,文章中包含了对于mysql的增改删查操作Java jdbc Mysql数据库连接
今天补充一个PreparedStatement防sql注入的一个写法。

使用createStatement获取数据库操作对象,然后紧接着使用executeQuery(sql),直接传递sql语句,会有sql注入的风险,要是别人在传递的参数值处填写sql语句,会影响安全性能。(当然也可以通过写正则表达式来判读用户传入的数据的合法性)。

接下来开始了解一下PreparedStatement的使用方法。

PreparedStatement的作用:
预编译SQL并执行SQL语句。

使用方法

①获取PreparedStatement对象

//Sql语句中的参数值用?代替
String sql = "select * from user where user = ? and password=? ;"
//通过connection对象获取,并传入对应的sql语句
PreparedStatement pstmt = conn.preparedStatement(sql);

②设置参数值

PreparedStatement对象.setXxx(参数1,参数2);//给?赋值
`//其中,Xxx是数据类型
//参数1:?的位置编号,从1开始计
//参数2:?的值`

示例代码(给?赋值)

pstmt.setString(1,"zhangsan");
pstmt.setString(2,"123456");

③执行SQL

executeQuery()
或
executeUpdate()
//不需要再传递sql语句

赞(0)
未经允许不得转载:工具盒子 » Java jdbc-PreparedStatement防止sql注入