初学JDBC__第四节(SQL注入,PreparedStatement和Statement )
来源:互联网 发布:java教学 编辑:程序博客网 时间:2024/05/22 01:55
SQL注入,PreparedStatement和Statement
1、在SQL中包含特殊字符或SQL的关键字(如:' or 1 or ')时Statement将出现不可预料的结果(出现异常或查询的结果不正确),可用PreparedStatement来解决。
2、PreperedStatement(从Statement扩展而来)相对Statement的优点:
1.没有SQL注入的问题。
2.Statement会使数据库频繁编译SQL,可能造成数据库缓冲区溢出。
3.数据库和驱动可以对PreperedStatement进行优化(只有在相关联的数据库连接没有关闭的情况下有效)。
本节以增删查改中查询为例测试SQL注入
import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class sqlInject {/** * @param args * @throws SQLException */public static void main(String[] args) throws SQLException {// TODO Auto-generated method stubread("rrrttt");}static void read(String name) throws SQLException{Connection conn=null;PreparedStatement ps=null;ResultSet rs=null;try{conn=jdbcUtils.getConnection();String sql="select id ,name,birthday,money from T_Users where name=?";ps=conn.prepareStatement(sql);ps.setString(1, name);rs=ps.executeQuery();while(rs.next()){System.out.println(rs.getObject("name")+" "+rs.getObject("money"));}}finally{jdbcUtils.free(conn, ps, rs);}}}
- 初学JDBC__第四节(SQL注入,PreparedStatement和Statement )
- JDBC要点总结、SQL注入示例(Statement和PreparedStatement)
- JDBC之SQL注入,PreparedStatement和Statement
- 初学JDBC__第七节(DatabaseMetaData和ParameterMetaData)
- Statement和PreparedStatement之间的区别以及sql注入
- PreparedStatement对象替代Statement解决sql注入
- Statement和PreparedStatement的区别; 什么是SQL注入,怎么防止SQL注入?
- Apache POI系列教程2-2:初学JDBC__第七节(DatabaseMetaData和ParameterMetaData)
- SQL注入(PreparedStatement)
- sql注入小解,以及statement和preparedStatement的理解和区别
- 初学JDBC__第六节(可滚动的结果集)
- 防范 SQL 注入,需要采用PreparedStatement取代Statement。
- 防范 SQL 注入,需要采用PreparedStatement取代Statement
- PreparedStatement与Statement对比、sql语句的被注入问题
- SQL语句(statement)预处理(preparedStatement)
- Statement、PreparedStatement执行SQL
- Statement和preparedStatement区别
- PreparedStatement和Statement比较
- unity3d自适应分辨率变化。。很旧的东西了。。。
- Hibernate反向工程—java.math.BigDecimal替换
- ubuntu 12.04 LTS 更换软件源
- 学习笔记之使用vi(暂时离开)和.vimrc(一)
- 我不可能永远都对
- 初学JDBC__第四节(SQL注入,PreparedStatement和Statement )
- 低级格式化
- 闪回查询、闪回表、闪回数据库(delete,update,drop及一切混合动作)
- PHP面向对象之数据库类实现登录
- fedora安装apache2
- 从这里开始
- [转]VC生成MAP文件
- Oracle Tablespace Point-in-Time Recovery (TSPITR)
- oracle死锁时,杀进程的方法