java实训个人总结 java中Statement详细用法有什么?
java中Statement详细用法有什么?简单介绍如下: Statement 是 Java 执行数据库操作的一个重要方法,用于在已经建立数据库连接的基础上,向数据库发送要执行的SQL语
java中Statement详细用法有什么?
简单介绍如下: Statement 是 Java 执行数据库操作的一个重要方法,用于在已经建立数据库连接的基础上,向数据库发送要执行的SQL语句。Statement对象,用于执行不带参数的简单SQL语句。 与此差不多的还有PreparedStatement,PreparedStatement 继承了Statement,一般如果已经是稍有水平开发者,应该以PreparedStatement代替Statement。
java中preparedstatement为什么可以防止sql注入?
不知道楼主用没有用过
select * from tab_name where name= "" name "" and passwd="" passwd ""
把其中passwd换成 [" or "1" = "1] 这样就可以完成sql注入
更有可能对你的数据库表drop操作
如果使用preparedstatement的话就可以直接使用预编译,PreparedStatement不允许在插入时改变查询的逻辑结构.
举例
statement
select * from tab_name where name= "" name "" and passwd="" passwd ""
passwd就可以换成 ‘ or "1"="1
Statement stmt = con.createStatement()
ResultSet rs = stmt.executeQuery(sql)
preparedstatement
select * from tab_name where name=? and passwd=?
PreparedStatement pst = con.prepareStatement(sql)
pstmt.setString(1, name)
pstmt.setString(2, passwd)
ResultSet rs = pstmt.executeQuery()