SQL注入问题

SQL注入问题(在拼接sql语句时会出现此问题)

什么是sql注入问题?就是在拼接sql语句时,有一些sql的特殊关键字参与字符串拼接,会咋总成安全问题

例如:输入用户民名和密码时拼接sql语句(用户名任意,密码为一个恒等式)

select * from user where usernamr='sadfasfa(任意)' and password = 'a' or 'a'='a'

以上语句一直为true,造成安全问题

那么问题来了,怎么解决sql注入问题?

使用PreparedStatement对象来解决,PreparedStatement时预编译的sql

参数使用?作为占位符

步骤:
1.导入驱动jar包
2.注册驱动
 Class.forName("com.mysql.jdbc.Driver");
3.获取数据库连接对象
Connection coon=DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名","数据库用户名","数据库密码");
4.定义sql语句(注意:sql的参数使用 ? 作为占位符)
//例如
String sql="select * from user where usernamr= ? and password = ?;
5.获取执行sql的对象PreparedStatement(注意:要将sql语句传入方法中)
PreparedStatement pstmt=coon.preparedStatement(sql);
6.给?赋值(参数1:第几个?;参数二:值)
pstmt.setString(1,username);
pstmt.setString(2,password);
7.执行sql(注意:不需要传递sql语句了)
stmt.executeQuery();//执行DQL(select)语句,返回ResultSet结果集对象,.next方法遍历结果集,根据索引或字段名获取到数据库数据。
8.释放资源
coon.close();
pstmt.close();
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值