プロが教える店舗&オフィスのセキュリティ対策術

jspファイルで
データベースの中のテーブルの中身をCSVファイルに出力するプログラムを教えてください。

delete文で中身を消すプログラムは書けたのですが、これはできません。
conn = null;
st=null;

conn=DriverManager.getConnection("jdbc:mysql://localhost/データベース名?" +
"user=ユーザー名&password=パスワード&useUnicode=true&characterEncoding=utf8");

st=conn.createStatement();

StringBuffer buf = new StringBuffer();
buf.append("delete from where id="+id);
st.executeUpdate(buf.toString());

これで削除はできました。
なのでbuf.appendの中身を
buf.append("SELECT from テーブル名 INTO OUTFILE "c:/data" ");
これに書き換えればできると思ったのですができません。

よろしくお願いします。

A 回答 (4件)

何かエラーは出ていないの?


それを書いた方がいいわよ
出ていないなら

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: }

補足日時:2014/01/24 14:51
    • good
    • 0

>buf.append("SELECT from テーブル名 INTO OUTFILE "c:/data" ");


→buf.append("SELECT * from テーブル名 INTO OUTFILE "c:/data" ");

SELECT の後ろに * が抜けています。

この回答への補足

それ直したのですが、駄目でした。
エラー内容はaskaaska様の補足にあります。

補足日時:2014/01/24 15:17
    • good
    • 0

こんにちは。



buf.append("SELECT * from テーブル名 INTO OUTFILE \"c:/data\"");

こうではないですか?
"文字列"の中で「"」を使うのであればエスケープが必要です。

この回答への補足

次はこのようなエラーが出たのですが...

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:
よろしくお願いします。

補足日時:2014/01/24 15:46
    • good
    • 0

> 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)

よろしくお願いします。

補足日時:2014/01/24 16:12
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!