-
1 说明文档
-
2 视频
使用静态SQL命令进行身份验证时,需要注意注入式攻击,具体做法是输入的密码为一个恒为真的表达式,如:‘xx or 1=1'这样就可以直接进行登录了,防止的方法是采用动态SQL命令:
//增加信息
String sqlstr="INSERT INTO StudentInfo(学号,姓名,性别) VALUES(?,?,?)";
PreparedStatement pstmt = dbConn.prepareStatement(sqlstr);
pstmt.setString(1, "2003"); //1代表第一个参数
pstmt.setString(2, "小丽"); //2代表第二个参数
pstmt.setString(3, "女"); //3代表第三个参数
pstmt.executeUpdate();
//SQL语句,?为占位符,指明参数的位置
insertsql="INSERT INTO StudentInfo(学号,姓名,性别) VALUES(?,?,?)";
pstmt=dbConn.prepareStatement(insertsql);
pstmt.setString(1, "2008"); //1代表第一个参数
pstmt.setString(2, "国栋"); //2代表第二个参数
pstmt.setString(3, "男"); //3代表第三个参数
pstmt.executeUpdate();
System.out.println("插入成功!"); //如果插入成功
//删除信息
sqlstr="DELETE StudentInfo where 学号=?";
stmt=dbConn.prepareStatement(sqlstr);
stmt.setString(1, "2001");
int count=stmt.executeUpdate();
if(count>0)
System.out.println("删除成功!");
else
System.out.println("没有要删除的信息!");
//修改信息
sqlstr="UPDATE StudentInfo SET 姓名=? "+"where 学号=?";
stmt=dbConn.prepareStatement(sqlstr);
stmt.setString(1, "小青");
stmt.setString(2, "2003");
int count=stmt.executeUpdate();
if(count>0)
System.out.println("修改成功!");
else
System.out.println("没有要修改的信息!");
//查询信息
sqlstr="SELECT * FROM StuInfo ";
stmt=dbConn.prepareStatement(sqlstr);
ResultSet rs=pstmt.executeQuery();
while(rs.next()) {
System.out.println("学号:"+rs.getString(1)+"\t"+"姓名:"
+rs.getString(2)+"\t"+"性别:"
+rs.getString(3));
}

