- JDBC解决sql注入问题
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import org.junit.Test;
import demo03.JDBCUtils;
//解决sql注入问题
public class Demo2 {
// 测试方法
// 注解不能少
@Test
public void fun1() throws Exception{
String name="xxx' OR 1=1 -- ";
String psw="1234";
//
// String name="谢婧";
// String psw="1234";
// 1:建立连接
Connection con=JDBCUtils.getConnection();
// 2:拼装sql语句
// SELECT * FROM t_user WHERE NAME='xxx' OR 1=1 -- AND pws='1234';
// 注意: “-- ”
// 其中:“--”后面的空格,不能省略
String sql="SELECT * FROM t_user WHERE NAME=? AND pws=?";
// 3:获得Statement
PreparedStatement ps = con.prepareStatement(sql);
// 4:设置参数到 ps 对象当中
// 在SQL中,参数索引,从 1开始
// 对这句代码进行设置--SELECT * FROM t_user WHERE NAME='xxx' OR 1=1 -- AND pws='1234';
ps.setString(1, name);
ps.setString(2, psw);
// 5:运送参数,执行sql并拿到结果
ResultSet rs=ps.executeQuery();
// 6:根据结果判断是否登录成功
if(rs.next()){
System.out.println("登录成功");
}else{
System.out.println("登录失败");
}
// 7:关闭资源
JDBCUtils.close(con, ps, rs);
}
}