こんにちは。
JSPからサーブレット・Beanを使うプログラムを作っております。
調べてみたのですがわからなくなってきてしまいました。
ぜひご教授ください。
JSPから日付を入力し、DBに日付データを挿入します。
今はBeanから下のようなSQL文で、JSP画面からはフォームに「2008-08-20」と入力して値を挿入しています。
sql = insert into テーブル名 values('?')
できればこのフォームに「20080820」と入力させたいと思っています。
そのためにはBeanでSQL文を発行する際に日付を分けて、「2008」+「-」+「08」+「-」+「20」のように間に「-(ハイフン)」を入れてやればいいのはわかるのですが、そのためにはどのようにすればよいか教えてください。
「20080820」を分けて、sql1・sql2・…に入れ、それを実際のSQL文発行の際にsql1+"-"+sql2+…とやるのでしょうか?
よろしくお願いいたします。
No.3ベストアンサー
- 回答日時:
日付の変換にはSimpleDateFormatが便利です。
------------------------------------------------------------
String str1 = "20080820";
String str2;
// SimpleDateFormatオブジェクトを生成
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
// 年月日解析
Date date = simpleDateFormat.parse(str);
if(date != null) {
// フォーマットパターン変更
simpleDateFormat.applyPattern("yyyy-MM-dd");
// yyyy-MM-dd文字列でフォーマット
str2 = simpleDateFormat.format(date);
}
else {
// フォーマット失敗処理
}
------------------------------------------------------------
また、日付フォーマット関数が用意されているDBMSが殆どなので
そちらを使うのも宜しいと思います。
回答ありがとうございました!
SimpleDataFormatでこんな簡単にフォーマットが変えられるとは。
更に初歩的な質問で申し訳ないのですが、フォームから入力した日付
(20080820)を「?」で受け取りそれを変換するということですよね。
そのあとにPreparedStatementに値をセットしていざsql実行だと思うのですが、
>String str1 = "20080820";
の"20080820"の部分は「?」からどう受けたらよいのでしょうか?
すみません、よろしくお願いいたします。
==============================================
sql = "insert into テーブル名 values (?)";
~(コネクション取得)~
**この部分で変換作業**
stmt = dbConn.preparedStatement(sql);
stmt.setString(1,変換済の日付);
stmt.executeUpdate(); //実行 ……
=============================================
No.4
- 回答日時:
今回の場合、str1の文字列日付を変換し、
str2に変換後の文字列日付が格納されるので。
stmt.setString(1,str2);
で大丈夫だと思います。
No.1
- 回答日時:
java.lang.Stringのsubstringを使えばできます。
-----
String s1 = "20080820":
String s2 = s1.substring(0,4) + "-" + s1.substring(5,6) + s1.substring(7,8);
-----
細かい使い方はAPIドキュメントを参照してください。
実際にはいきなりsubstringをやると、文字数が足りなかったりすれば
例外(java.lang.StringIndexOutOfBoundsException)が発行されてしまいますし、
文字数が足りていても日付として正しいかどうかわかりませんから、
入力チェックを事前に行う必要があるでしょう。
参考URL:http://java.sun.com/javase/ja/6/docs/ja/api/inde …
回答ありがとうございました!
私が初め考えていたのはこのタイプだったようです。
中途半端な知識でお恥ずかしい限りです。
入力チェックも私にとっては難関なのですが、色々試してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP プログラムコードを入力する場合改行してもいいですか? 2 2022/10/02 16:05
- Excel(エクセル) EXCELの「接続」のSQLのコマンド文字列にて、セルから任意の数値を利用したい 2 2023/03/09 16:43
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- MySQL #1062 - '0' は索引 'PRIMARY' で重複しています。とでています。 1 2023/01/01 06:13
- Oracle SQLの書き方について 1 2023/04/13 09:54
- SQL Server AccessのInsertクエリのあとつづけてDeleteクエリを行いたいがSQLでどう書いたらいい 3 2023/05/27 14:12
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
レコード件数の表示
Java
-
データベースから日付型を取得したいんですが
Java
-
JSPで<SELECT>の中にDBから持ってきたデータを反映させたい
Java
-
-
4
JDBCを使ってdate型へのINSERTはできますか?
Java
-
5
jsp~jspにhiddenを使って変数を飛ばしたい
JavaScript
-
6
JSPのNULLレコード表示について教えて下さい。
Java
-
7
JSPの処理の途中で、JavaScriptの処理をしたい
JavaScript
-
8
jsp 改行コードで改行させて表示したい
Java
-
9
リンクでPOSTデータを送信することは可能ですか?
HTML・CSS
-
10
リンクをクリックした時にformからPOST送信したい。
HTML・CSS
-
11
count(*)で取得した値をJAVAの変数に代入するには?
Java
-
12
hiddenの値が期待した値で取得されないのです
Java
-
13
jspからServletを呼び、元のjspページに戻るにはどうしたらよいですか?
Java
-
14
JSP内でString型からint型に変換する方法(SAStruts使用)
Java
-
15
htmlでテーブル内にテキストボックスを作りたいのですが・・・
HTML・CSS
-
16
JSPのクラスをコンパイルできない問題
Java
-
17
Javaでデータに登録する度にIDを振る
Java
-
18
【SQL】他テーブルに含まれる値に合致する行を抽出
その他(データベース)
-
19
Javascriptの値をJava(JSP)へ渡す方法
Java
-
20
Java、2の0乗~10乗の表示
Java
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAの質問になります 行の非表示
-
ユーザーフォームのラベルに日...
-
DataGridViewでyyyy/MM/dd
-
今日より前の書き方 マクロ
-
「eclipseで作るカレンダー(ス...
-
DateTimePickerを西暦表示にす...
-
エクセルのVBAで日付を検索し転...
-
誕生日より星座を表示するには
-
Eclipseの対応する括弧の強調表...
-
VBAのapplication.ontime メソ...
-
日付の差を求めるには
-
VB6で時刻の範囲に入っているか...
-
コンボボックスに日付を表示する
-
VBA 日付・時刻の判別 時刻を認...
-
VBA:日付をシリアル値にできる...
-
VBAで当月の1日を表示するには...
-
1本あたり○円と表示する時どの...
-
システム日付とは?
-
VBA 日付、未来の日付はエラー...
-
Python pandasについての質問で...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipseの対応する括弧の強調表...
-
ユーザーフォームのラベルに日...
-
VBAの質問になります 行の非表示
-
エクセルのVBAで日付を検索し転...
-
VisualBasic6.0のFormat関数で...
-
DataGridViewでyyyy/MM/dd
-
3人のじゃんけんのプログラム
-
システム日付とは?
-
コンボボックスに日付を表示する
-
今日より前の書き方 マクロ
-
【VBA】土日をスキップして日付...
-
エクセルVBAで機械の稼働時間を...
-
VBA 日付、未来の日付はエラー...
-
VBAで当月の1日を表示するには...
-
DataGridViewの和暦表示について
-
「eclipseで作るカレンダー(ス...
-
テキストボックスにカレンダー...
-
ExcelVBAでSQLサーバの日付時刻...
-
【Excel VBA】条件に合った行の...
-
VBAのapplication.ontime メソ...
おすすめ情報