jdbc中的PreparedStatement可以注入jdbc 不确定查询条件的参数个数吗?

没有更多推荐了,
不良信息举报
举报内容:
JDBC中的PreparedStatement相比Statement的好处有哪些?
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!17:33 提问
获得经过PreparedStatement设置参数的完整SQL语句
普通JDBC过程。
在写SQL之后。用PreparedStatement设置的参数。
如select * from table where id = ?
PreparedStatement.setInt(1,1);
那么真正的SQL就变成了select * form table where id = 1;
我如何在代码中获得经过ps设置参数之后的完整的可直接在数据库运行的SQL语句。
按赞数排序
这个不可以的 的你是PreparedStatement 预编译
用LOG4j可以实现
是可以获取的——
import java.io.PrintS
//为了第二句能用
System.setOut(new PrintStream("D:/PrintStream.txt"));
//这样才方便看到输出结果
System.out.println(pstmt);
//结果会是下面这样:
com.mysql.jdbc.JDBC4PreparedStatement@b36c37: insert into userinfo(username,password) values('myName','123456')
最终的结果是pstmt.executeUpdate(sql);语句不能正确执行!感觉多了前半部,即com.mysql.jdbc.JDBC4PreparedStatement@b36c37:
教你一招最简单的,把设置完参数后的PreparedStatement对象打印以下就知道了
com.mysql.jdbc.JDBC42PreparedStatement@134894: delete from emp where id=4;
然后从冒号截取字符串就可以了
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐没有更多推荐了,
不良信息举报
举报内容:
JDBC要点总结、SQL注入示例(Statement和PreparedStatement)
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!jdbc中sql不支持IN直接传入字符串,例如'0001','0002'等这样子的方法,所以需要根据传入参数的个数来构造?的个数
例如传入为一个数组或一个list &String[]{'0001','0002'}
那么构造的in 就为 in(?,?)
相对应的for循环数组长度来传入参数
for(in t index=0;index&xx.index++){
  ps.setString(index,xx[index]);
通过动态的构造sql语句和动态传值就能够实现类似于mybatis中的in直接传入字符串的形式。
阅读(...) 评论()没有更多推荐了,
不良信息举报
举报内容:
JDBC_使用PreparedStatement执行update操作
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!

我要回帖

更多关于 jdbc防sql注入 的文章

 

随机推荐