j今天,我们来说说我们的SQL语句真的安全吗???这是每一个开发人员都非常关注的问题。为我们写的sql语句真的安全吗?
实际上是非常的不安全的,我们来看看下面的sql语句
select * from student where name=+"username" and password=+"paddword"
当我们写了上面的SQL
语句的时候,那么我们在前台用户名输入'1' or '1'=='1'这样的时候,由于这个语句总是成立的
因此会造成短路的现象,后面的不会检查,直接是通过的。因此用户名或者是密码都会验证成功的
因此在jdbc技术里面,我们提供了动态查询。
那么什么是动态的查询了, 所谓的动态查询就是在程序运行的时候来进行查询,就是在我们的sql语句在运行的时候查询的。
jdbc提供了一个pareStatement接口来实现的,它继承来自statement对象。动态查询的语句代码如下:
我们来看看下面的sql语句.
select * from student name=? and id=?;
这个问好就是一个通配符,该方法提供了很多的参数。来看看下面的代码
ps.setString(第几个通配符,参数值)
当然,这一切的前提条件就是必须创建pareStament对象了。
con.pareStamement();
调用接口对象的该方法来实现了。
这样我们就做到了动态的查询数据库表里面的内容了。