• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JSP/サーブレットです)

JSP/サーブレットでデータをテーブルに格納する方法

このQ&Aのポイント
  • Java初心者の方が、JSP/サーブレットを使ってデータをテーブルに格納する方法について教えてください。
  • read.jsp内のテキストエリアにリーダーで取り込んだデータを、read.javaを通じてテーブルに格納したいです。
  • 質問者はデータが文字列として取り込まれるため、取り込んだデータを分解してからテーブルに格納したいと考えています。具体的なソースコードなどを教えていただけますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.4

> 自作のデータベース MySQLかなにか? データベースの仕組み自体を作ったわけじゃないわよね。 MySQLと仮定して つまり、あなたが今困っているのは Javaの変数に格納されているデータを データベースのテーブルに格納する方法 ってことかしらね。 だとすると ググレ て言うわ。 確かに初心者には敷居高いところだけど そのくらいはまずぐぐりなさいって話になっちゃうわ。 「hsql」と「Java」という単語でぐぐるの。 サンプルがいくらでも手に入るわよ。 もうちょっと検索結果を絞り込みたい場合は 「hsql」と「JDBC」でぐぐるといいわ。 「JDBC」って言うのはJavaが提供する データベースとのやり取りをする仕組みなの。 ちなみに hsqlは正式名称HypersonicSQLというので hsqlだけじゃなく 「HypersonicSQL」とか「HSQLDB」とかでも検索すると良いわね。 書いてあることは結構難しいかもしれないから そのときはまた質問してちょうだいな。

その他の回答 (3)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.3

・・・んー ひとつ確認。 「テーブル」 これが指すものは何かしら?

tsa63688
質問者

補足

ご回答ありがとうございます。 質問内の ///////////// Flow(テーブル) id int barcode int date varchar //////////// の部分ですが、自分で作成したデータベースのことです。 create tableで作りました。 このテーブルに読み取りデータを格納したいと思っています。 (ご質問の意図に合っていなかったらすいません・・・)

  • mintia007
  • ベストアンサー率59% (16/27)
回答No.2

ん? どっかで同じような質問がありましたね。 ↓ここだ http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1050625230 上記では上手くいかなかったのでしょうか? (BA時には上手く行ったと書いてありますが)

参考URL:
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1050625230
tsa63688
質問者

補足

ご回答ありがとうございます。 仰るとおり、送ったデータ(keyword)をtimeとbarcodeに分け、Javaで表示。まではできました。 しかし、その後、バラバラにしたデータ(つまり、timeとbarcode)をテーブルに格納することが出来ませんでした。 そのため今回の質問ではバラバラにしたデータをテーブルに格納する方法を求めています。 同じような質問だと思われますが、ご理解いただけたらと思います。

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

入力されるデータに一定の規則がないとダメよ。 一定の規則があるのなら Stringのsplitで分割するなり MessageFormatでparseするなり Stringのsubstringで切断するなり すればいいの。 今回のデータなら 1行ごと処理するようにして 半角スペースでsplitして 最初の2つをSimpleDateFormatでparseして日時に変換。 3つ目がbarcodeかしら。 <Memory> 2010/11/28 21:44:17.000 FM36J07,009059,0 <End> が必ず読み取っちゃうというけど この読み取っちゃうものにはどんな規則性があるのかしら。 常に1行目2行目最終行ならそれをスキップするようにするとか <で開始する行はスキップするとか splitで取得した3つ目のデータにカンマが入っていたらスキップするとか 考え方はいろいろあると思うわ。

tsa63688
質問者

補足

ご回答ありがとうございます。 Scannerを使い、バラバラにすることまではできました。 しかし、このままではFlowテーブルに格納できなくて困っているという状況です・・・ 以下、そのソースコードです。 (Read.java) ・・・・・・・・・・ public class Read extends HttpServlet { private static final long serialVersionUID = 1L; public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("Shift_JIS"); String keyword = request.getParameter("keyword"); Scanner sc = new Scanner( keyword ).useDelimiter("[\\s]+"); List<String> date = new ArrayList<String>(); List<String> code = new ArrayList<String>(); sc.next(); sc.next(); sc.next(); sc.next(); while( sc.hasNext() ){ String s = sc.next(); if( s.toUpperCase().equals("<END>") ){ break; } s += " " + sc.next(); date.add( s ); code.add( sc.next() ); } response.setContentType("text/html; charset=Shift_JIS"); PrintWriter pw = response.getWriter(); pw.print("<HTML>"); pw.print("<BODY>"); pw.print("日時<BR>"); for( String s: date ){ pw.print( s + "<BR>" ); } pw.print("<BR>コード<BR>"); for( String s: code ){ pw.print( s + "<BR>" ); } pw.print("</BODY>"); pw.print("</HTML>"); } } このままでは、表示のためにKeywordをdateとbarcodeに分けている状況に過ぎないのかなと思います。 このdateとbarcodeをFlowテーブルに格納できれば一番です。 格納の仕方をご教授いただければと思います。

関連するQ&A

専門家に質問してみよう