質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JDBC

JDBC(Java DataBase Connectivity)は、Javaとリーレーショナルデータベースに接続させる基本的なAPIです。Java上でSQLステートメントを発行することで、データベースの種類に影響を受ないDB操作を可能とします。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

1回答

3317閲覧

超初心者です 登録システムにエラーメッセージを表示したいです

mizu_

総合スコア6

JDBC

JDBC(Java DataBase Connectivity)は、Javaとリーレーショナルデータベースに接続させる基本的なAPIです。Java上でSQLステートメントを発行することで、データベースの種類に影響を受ないDB操作を可能とします。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2017/04/27 14:21

編集2017/04/27 16:12

プログラムを勉強し始めて20日ほどの超初心者です。
知識のないこと、質問も詳細にできないことをお許しください。

登録システムを初めて作っています。

登録画面で「個人の番号」「開始時刻」「終了時刻」「人数」等を入力する仕様です。
画面遷移はサーブレットとJSPです。
入力した内容はDBに入ります。

分からないところは、
・入力画面で、個人の番号を入れた際に、既にDBにある場合、入力画面に戻ってエラーメッセージを出したい
・入力画面で開始時刻、終了時刻を入れた際、終了より開始のほうが早い時間の場合、入力画面にエラーメッセージを出したい
・入力画面で入れた人数が数字でない場合、入力画面に戻ってエラーメッセージを出したい
・人数が1以上100以下でない場合入力画面にエラーメッセージを出したい

です。
その他の仕様はできましたが、その部分が手もつけられない状況です。

簡単な問題かも知れませんが、どなたか解説をお願いいたします。

追記:
人数についての問題は解決しました!有難うございます。
時刻と個人番号については未解決です。引き続きどなたか解説をお願いしたいです。

追記2:
時間比較に関して解決致しました。
あとは個人番号についてです。
DBにあるかどうか、あった場合どう持っていけば良いのかわかりません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

分からないところに「データを登録する」ということが入っていないということは、SQLをDBに対して発行し新規データを登録することは理解できていると考えてよいですか?
それを前提に答えますが、

>入力画面で、個人の番号を入れた際に、既にDBにある場合、入力画面に戻ってエラーメッセージを出したい
既にあるかどうかを確認するためにSELCT文のSQLをDBに対して発行し、その結果をプログラムで受け取ってください。受け取れたら、その中身を確認し、もし該当のデータが存在すれば、エラーメッセージを出力してください。

>入力画面で開始時刻、終了時刻を入れた際、終了より開始のほうが早い時間の場合、入力画面にエラーメッセージを出したい
開始時刻、終了時刻が入力され、エラーメッセージを出したいタイミング(例えば登録ボタンがクリックされたとき)に、開始時刻と終了時刻を比較し、もし開始時刻のほうが早い時間であればエラーメッセージを出力してください。

>入力画面で入れた人数が数字でない場合、入力画面に戻ってエラーメッセージを出したい
エラーメッセージを出したいタイミング(例えば登録ボタンがクリックされたとき)に、人数を判定し、もし数字でなければエラーメッセージを出力してください。

>人数が1以上100以下でない場合入力画面にエラーメッセージを出したい
エラーメッセージを出したいタイミング(例えば登録ボタンがクリックされたとき)に、人数を判定し、もし1以上100以下でなければエラーメッセージを出力してください。

あまり求められているような回答ができている自信がありませんが、このような回答で良いでしょうか?

投稿2017/04/27 14:34

akabee

総合スコア1947

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mizu_

2017/04/27 14:50

ご回答有難うございます。 はい、DBへのデータ登録は理解しています。 言葉足らずで申し訳ございません。 ちなみに、エラーメッセージの出し方も大体は理解しています。(うまく使えていませんが・・・) どのエラーメッセージも、漠然とこんな感じにするのかなとはわかるのですが、詳細な点が分からず質問させていただきました。 例えば、開始時刻と終了時刻の比較の方法や、どうやって数字であるか確認するのか、などです。 もしお時間がございましたらご教示ください。
akabee

2017/04/27 15:02

開始時刻、終了時刻はどのような形式で入力され、プログラム上で扱いますか?そのあたりをまず把握することが重要です。 比較演算子は理解されていますか?→参考:http://www.javaroad.jp/java_operator2.htm 例えば1と2を比べて、1のほうが小さいということを判定することができます。同様に、例えば開始時刻が5、終了時刻が7と入力されたとしたら(繰り返しますがどのような形で入力されてくるかは実際の環境で確認し把握することが必要です)、上記の比較演算子を用いて比較することになります。当然、5のほうが小さいですのでエラーメッセージは出しません。 もし、「5時」「11時」というように「時」という文字列を含んだ形でプログラムに渡されるのであれ、ば、「時」をプログラム上で扱わないように入力側に対して工夫をする、「時」より前の数字のみを切り出して比較用の変数として利用するなどの手立てを考える必要があります。 数字かどうかの確認についても、まずはどのようなデータが入力されてくるのかの確認が必要です。 恐らく入力データに関する制御はかけておらずどんな形のデータも入力される可能性があるのでしょう。 その場合、どんなデータ型で値を受け取っているかがポイントになります。 もしString型であればこちら→https://teratail.com/questions/807が参考になるかもしれません。
mizu_

2017/04/27 15:51

詳細な説明を感謝致します。 お陰さまで下2つの問題に関して解決致しました! 時間比較に関しましてはもう少し考えてみます。 「5時」「10分」のように時間と分が分かれて入力されるため、二つをどのようにくっつけて比較するのかがまだ悩んでいます。 遅い時間に回答していただき本当に有難うございます。 お機会がございましたらまたよろしくお願いいたします。
akabee

2017/04/27 16:17

分までが時間の単位なのですね。 解決策を私から申し上げるのは簡単ですがここまで来たら自力で解決できるかと思います。 頑張って下さい。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問