- ベストアンサー
JSPでデータベースのテーブルをCSVファイルに出力する方法
- JSPを使用してデータベースのテーブルの内容をCSVファイルに出力するプログラムを教えてください。
- delete文でデータを削除するプログラムは書けたが、データをCSVファイルに出力する方法が分からない。
- データベースのテーブルの内容をCSVファイルに出力するためには、SELECT文を使用してテーブルのデータを取得し、その結果をCSVファイルに書き込む必要がある。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 buf.append("SELECT * from テーブル名 INTO OUTFILE \"c:/data\""); こうではないですか? "文字列"の中で「"」を使うのであればエスケープが必要です。
その他の回答 (3)
- askaaska
- ベストアンサー率35% (1455/4149)
> org.apache.jasper.JasperException: An exception occurred processing JSP page /CSV.jsp at line 24 これはJSPでエラーが出ています ってだけ もっと詳しいエラー情報がないと誰も対応できないわよ 最初に私が#1で書いたように stacktraceを書いてね
補足
そうですね。すいません Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:401) 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) 原因 javax.servlet.ServletException: java.sql.SQLException: Can not issue SELECT via executeUpdate(). org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:862) org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791) org.apache.jsp.CSV_jsp._jspService(CSV_jsp.java:95) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377) 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) 原因 java.sql.SQLException: Can not issue SELECT via executeUpdate(). com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1086) com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989) com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975) com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920) com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1803) com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1764) org.apache.jsp.CSV_jsp._jspService(CSV_jsp.java:77) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377) 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) よろしくお願いします。
- maiko0318
- ベストアンサー率21% (1483/6969)
>buf.append("SELECT from テーブル名 INTO OUTFILE "c:/data" "); →buf.append("SELECT * from テーブル名 INTO OUTFILE "c:/data" "); SELECT の後ろに * が抜けています。
補足
それ直したのですが、駄目でした。 エラー内容はaskaaska様の補足にあります。
- askaaska
- ベストアンサー率35% (1455/4149)
何かエラーは出ていないの? それを書いた方がいいわよ 出ていないなら catch節で 例外.printStackTrace(new java.io.PrintWriter(out)); をやってみて もしくは st.executeUpdate を st.executeQuery にしてみたら行けたりする? もしかしたら権限がないだけの可能性もあるけど
補足
このような感じです。 Syntax error, insert ")" to complete MethodInvocation 20: st=conn.createStatement(); 21: 22: StringBuffer buf = new StringBuffer(); 23: buf.append("select * from anpisystem into outfile "data.csv" fields terminated by ',' "); 24: st.executeUpdate(buf.toString()); 25: 26: } JSPファイル: /CSV.jsp の中の23行目でエラーが発生しました Syntax error, insert ";" to complete Statement 20: st=conn.createStatement(); 21: 22: StringBuffer buf = new StringBuffer(); 23: buf.append("select * from anpisystem into outfile "data.csv" fields terminated by ',' "); 24: st.executeUpdate(buf.toString()); 25: 26: } JSPファイル: /CSV.jsp の中の23行目でエラーが発生しました data cannot be resolved 20: st=conn.createStatement(); 21: 22: StringBuffer buf = new StringBuffer(); 23: buf.append("select * from anpisystem into outfile "data.csv" fields terminated by ',' "); 24: st.executeUpdate(buf.toString()); 25: 26: } JSPファイル: /CSV.jsp の中の23行目でエラーが発生しました Syntax error on token "csv", ( expected after this token 20: st=conn.createStatement(); 21: 22: StringBuffer buf = new StringBuffer(); 23: buf.append("select * from anpisystem into outfile "data.csv" fields terminated by ',' "); 24: st.executeUpdate(buf.toString()); 25: 26: }
補足
次はこのようなエラーが出たのですが... org.apache.jasper.JasperException: An exception occurred processing JSP page /CSV.jsp at line 24 21: 22: StringBuffer buf = new StringBuffer(); 23: buf.append("SELECT * anpisystem INTO OUTFILE \"data.csv\" fields terminated by ',' "); 24: st.executeUpdate(buf.toString()); 25: 26: } 27: よろしくお願いします。