[問題] JSP讀取資料表 stmt.executeUpdate出問題

看板java作者 (Leo)時間12年前 (2013/06/06 10:23), 編輯推噓0(002)
留言2則, 2人參與, 最新討論串1/2 (看更多)
各位前輩好~有個問題想請教各位~ 我是用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)

06/06 11:51, , 1F
把滑鼠交出來吧
06/06 11:51, 1F

06/06 11:53, , 2F
??
06/06 11:53, 2F
文章代碼(AID): #1Hh_AY7w (java)
文章代碼(AID): #1Hh_AY7w (java)