作者leo1234 (Leo)
看板java
标题[问题] JSP读取资料表 stmt.executeUpdate出问题
时间Thu Jun 6 10:23:25 2013
各位前辈好~有个问题想请教各位~
我是用JSP 定义JDBC驱动 去连接SQL资料库
我Rule.jsp(下面附CODE)要做的事情:
首先我先建立查询rs资料表~去读取资料表里的栏位资料~
然後将读取出来的栏位资料写入File(.txt档)里面~
然後再将File里的资料叫出来藉由我的演算法产生出一条字串
最後将这个字串 INSERT到资料库里
之前已经成功做出来可以RUN了
可是在我这几天测试的时候
我在一开始读取资料表的地方
改成读取另外一个资料表(栏位名称相同)
这边开始出问题
下面附CODE和错误讯息~希望高手帮我看一下问题出在哪里~感谢~
==============Rule.jsp=========================
String user = "root";
String pass = "xxxx";
String database = "defense";
String url = "jdbc:mysql://localhost:3306/defense";
//建立一个联结物件
Connection conn = null;
//建立Statement物件,建立陈述式物件
Statement stmt = null;
ResultSet rs =null;
PreparedStatement prestmt = null;
try{
//定义驱动程式与资料来源之间的连结
Class.forName("com.mysql.jdbc.Driver").newInstance();
//建立一个联结物件
conn = DriverManager.getConnection(url,user,pass);
//建立Statement物件
stmt = conn.createStatement();
}catch(SQLException sqle){
out.println("SQL Exception : " + sqle);
}
}
//建立查询并产生rs的资料表
//
String sql = "select * from access_log"; //<=原本这样可以跑
String sql = "select * from vulnerable_list";
//我只改了这行 去查询vulnerable_list资料表,下面line 333就出现问题
rs = stmt.executeQuery(sql);
FileWriter fw=new FileWriter("c:\\testingpattern.txt");
BufferedWriter bw=new BufferedWriter(fw);
//开启file写入进去
//开始显示
while(rs.next()){
String name = rs.getString("injected_string");
String num = rs.getString("parameter");
//vulnerable_list的栏位名称和原本的access_log资料表
一样,虽然vulnerable_list还有其他的栏位~
但我是要撷取这两个栏位而已
应该不是这个原因吧QQ
bw.write(name);
bw.newLine();
bw.write(num);
bw.newLine();
out.print("字串" + name + "参数" + num + "<br>");
}
bw.close();
fw.close();
//关闭资料表
//rs.close();
======这边省略了藉由演算法产生了一个字串 存在
newrule 里=====
System.out.println("rule\t"+newrule);
String newruletest = "INSERT INTO rule(newrule) VALUES('"+newrule+"')";
//我要将它(newrule)存到rule资料表里的newrule栏位
======> Line333---- stmt.executeUpdate(newruletest);<========
//刚刚说的改成读取别的资料表这行就出现ERROR
//这行注解掉後上面就印的出来(out.print("字串" + name + "参数" + num + "<br>");)
//可是就无法执行我後面要做的:新增rule资料表了(INSERT INTO rule(newrule))
Statement stmt2 = conn.createStatement();
//rs = stmt2.executeQuery(sql);
//stmt2.executeUpdate(newruletest);
fout.close();
out.println("新规则:"+newrule);
%>
</body>
</html>
=======================错误讯息===================================
HTTP Status 500 -
type: Exception report
message
description: The server encountered an internal error () that
prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: An exception occurred processing
JSP page /Rule.jsp at line 333
330: stmt.executeUpdate(newruletest);<=code line 333
331:
332:
333: Statement stmt2 = conn.createStatement();
334: //rs = stmt2.executeQuery(sql);
335: //stmt2.executeUpdate(newruletest);
336:
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:521)
org.apache.jasper.servlet.JspServletWrapper.service
(JspServletWrapper.java:412)
org.apache.jasper.servlet.JspServlet.serviceJspFile
(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
==================================================================
希望高手帮我看一下
实在觉得很奇怪QQ
谢谢拉 !!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.169.9.169
※ 编辑: leo1234 来自: 118.169.9.169 (06/06 10:26)
1F:→ swpoker:把滑鼠交出来吧 06/06 11:51
2F:→ leo1234:?? 06/06 11:53