preparestatement
preparestatement概述
Statement安全问题
Statement执行 ,其实是拼接sql语句的。 先拼接sql语句,然后在一起执行。
String sql = "select * from t_user where username='"+ username +"' and password='"+ password +"'";
UserDao dao = new UserDaoImpl();
dao.login("admin", "100234khsdf88' or '1=1");
SELECT * FROM t_user WHERE username='admin' AND PASSWORD='100234khsdf88' or '1=1'
前面先拼接sql语句, 如果变量里面带有了 数据库的关键字,那么一并认为是关键字。 不认为是普通的字符串。
rs = st.executequery(sql);
PrepareStatement相比较以前的statement, 预先处理给定的sql语句,对其执行语法检查。 在sql语句里面使用 ? 占位符来替代后续要传递进来的变量。 后面进来的变量值,将会被看成是字符串,不会产生任何的关键字。
String sql = "insert into t_user values(null , ? , ?)";
ps = conn.prepareStatement(sql);
//给占位符赋值 从左到右数过来,1 代表第一个问号, 永远你是1开始。
ps.setString(1, userName);
ps.setString(2, password);
文章最后发布于: 2019-05-26 19:06:41
相关阅读
PreparedStatement接口,prepareStatement方法
1、public interface PreparedStatementextends Statement表示预编译的 SQL 语句的对象。 SQL 语句被预编译并且存储在 Prepared
PrepareStatement:对SQL进行预编译,在数据库中形成“执行计划”,可以对SQL语句中的“变量参数“进行修改,这样可以减少数据库不必要
statement prepareStatement的一点体会?
1、PrepareStatement 是预编译的,对于批量处理(Batch)处理可以大大提高效率,也叫JDBC存储过程 2、使用Statement对象。在对数据库只执
转自:http://blog.csdn.net/QH_JAVA/article/details/48245945 一、prepareStatement 的用法和解释 1.PreparedStatement是预编译
PrepareStatement与Statement的主要区别:1:创建时的区别: Statement stm=con.createStatement(); PreparedStatement pstm=con.pr