• 締切済み

はじめましてJava初心者のものです。

はじめましてJava初心者のものです。 現在、日報管理システムを作成しているのですが、日報をウェブ上で書き、その内容を閲覧者へ送信するというようなものです。 その時に、もし今日より前の日に、日報を書き忘れて、送信していない場合に、トップページに、「○○さんの○月○日の日報の提出が未提出です」というようなアラートメッセージを表示させたいのですが、どのようにDBから取得しそれを表示するのか方法がわかりません。 DBにはあらかじめ、以下のようなカラムを用意し、中身は空の状態にしています。これで日報を書き、送信したら、DBに登録されるようにしたいと考えています。 どうかアドバイス宜しくお願い致します。 書き込まれた日報のID(int型) 日報を書いたユーザのID(int型) 日報を書いた人の名前(String型) 日報の内容(TEXT型) 書いた日の日付(DATE型) また、システムにログインできるユーザテーブルを別に作成しています。 ユーザのIDと日報を書いた人の名前はそこのテーブルと紐付けて取得させようと思っています。 説明がうまくなくて申し訳ないですがよろしくお願い致します。

  • Java
  • 回答数1
  • ありがとう数6

みんなの回答

  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.1

>どのようにDBから取得しそれを表示するのか方法がわかりません。 と言われても、DBから当日以前に日報が登録されていない日付を取得して それを画面に渡して表示する、としか言えないような・・ その際のSQLがわからないということなのですか? その場合はDBの内容をもっと具体的に書いてください。 使用するDBやバージョンによって変わってきますので。 どこまで出来ていて何が出来ていないのかをもっと明確に書ければ回答もしやすいかなと思います。

関連するQ&A

  • はじめましてJava初心者のものです。

    はじめましてJava初心者のものです。 現在、日報管理システムを作成しているのですが、日報をウェブ上で書き、その内容を閲覧者へ送信するというようなものです。 その時に、もし今日より前の日に、日報を書き忘れて、送信していない場合に、トップページに、「○○さんの○月○日の日報の提出が未提出です」というようなアラートメッセージを表示させたいのですが、どのようにDBから取得しそれを表示するのか方法がわかりません。 DBにはあらかじめ、以下のようなカラムを用意し、中身は空の状態にしています。これで日報を書き、送信したら、DBに登録されるようにしたいと考えています。 どうかアドバイス宜しくお願い致します。 書き込まれた日報のID(int型) 日報を書いたユーザのID(int型) 日報を書いた人の名前(String型) 日報の内容(TEXT型) 書いた日の日付(DATE型) また、システムにログインできるユーザテーブルを別に作成しています。 ユーザのIDと日報を書いた人の名前はそこのテーブルと紐付けて取得させようと思っています。 説明がうまくなくて申し訳ないですがよろしくお願い致します。

  • 同じサーバーで、異なるデータベースを同時に開くことはできますか?

    1.タイトルの通り、同時に開くことができますでしょうか? 日本PHPユーザー会ホームページでは以下の方法でできるとの回答があります。 $con1 = mysql_connect(localhost, user_id , pass); $con2 = mysql_connect(localhost, user_id , pass); mysql_select_db("db1",$con1); mysql_select_db("db2",$con2); ======================================== db1 user_table user_id(int),user_name(var) ========================================== db2 main_table main_id(int),user_id(int) ======================================== $sql_user_name = "SELECT user_name FROM user"; $result_user = mysql_query($sql_user_name,$con1); $row_user = mysql_fetch_array($result_user); echo $row_user[user_name]; のようにやっても mysql_fetch_array()がでます。 mysql_queryは最後の接続を活かすとなっているのでこの部分の書き方を教えてください。 2.できたとしてリレーションを行うことができますでしょうか? つまり $sql_user_name = "SELECT user_name FROM db1.user_table,db2.main_table WHERE db1.user_table.user_id = db2.main_table.user_id" というようなことはできますでしょうか? 長文で申し訳ありませんが、どうかよろしくお願いします。

    • ベストアンサー
    • MySQL
  • デーブルのリンクについて

    select文で2つのテーブルをリンクし表示したいのですが,うまくできません. 具体的には, 「ユーザテーブル」 ・ID ・名前 「タスクテーブル」 ・タスクID ・タスク名 ・ユーザID1 ・ユーザID2 ・ユーザID3 という二つのテーブル構成になっています. タスクテーブルのユーザID1~3は,ユーザテーブル のIDとリンクしています. この状況で,タスクテーブルのユーザID1~3を ユーザテーブルのIDとリンクさせ,名前を表示する クエリを作成したいのです. 「タスクテーブルクエリ」 ・タスクID ・タスク名 ・ユーザ名前1(ユーザテーブルのIDとリンク) ・ユーザ名前2(ユーザテーブルのIDとリンク) ・ユーザ名前3(ユーザテーブルのIDとリンク) このようにするにはどうすればよいでしょうか? すみませんが,教えて下さい.

    • ベストアンサー
    • MySQL
  • java.until.Mapに関してです。

    以下のプログラムで配列部分をjava.until.Map(キーはID)に変更して、 こんな事やるとどういうプログラムになるのでしょうか? 何卒ご回答よろしくお願い致します。 ・顧客情報を取得するgetCustomer(int id)メソッドを作成する ・顧客情報を変更するupdateCustomer(int id, String name)メソッド、 顧客情報を削除するdeleteCustomer(int id)メソッドを作成する  但し、指定idの顧客情報が存在しない場合は例外をスローしたいのです。 class CustomerManager { public static void main(String[] args){ CustomerManager manager = new CustomerManager(); manager.addCustomerCard( "山田一郎"); manager.addCustomerCard( "鈴木太郎"); manager.addCustomerCard( "田中次郎"); manager.printAllInfo(); } private CustomerCard[] customers = new CustomerCard[5]; private int index = 0; public void addCustomerCard(String name){ customers[index] = new CustomerCard(1 + index,name); index++; } public void printAllInfo() { System.out.print("ID =" + customers[0].id + ","); System.out.println("名前 = " + customers[0].name); System.out.print("ID =" + customers[1].id + ","); System.out.println("名前 = " + customers[1].name); System.out.print("ID =" + customers[2].id + ","); System.out.println("名前 = " + customers[2].name); } } class CustomerCard { String name; int id; public CustomerCard(int id,String name){ this.name = name; this.id = id; } public String getName(){ return this.name; } }

    • ベストアンサー
    • Java
  • 3つの関連するテーブルから必要な情報を取り出す

    現在、データベースで小規模の検索システムを製作しているのですが、詰まってしまったところがあるので、質問をさせて頂きたいです。 まず、最初に取り出したいテーブルの構成を書きたいと思います。 "Tag" "Works" "EquipTag" の三つのテーブルがあり、 Tag /* Tagをあらわすテーブル*/ id: primaryキー name: 名前 created_at: 作成日 Works /* 作品を表すテーブル*/ id: primary キー name: 名前 created_at: 作成日 Equip_Tag /*作品とタグの関連を保存するテーブル*/ id: primaryキー works_id: 外部キー Worksのprimaryキーに対して tag_id: 外部キー Tagのprimaryキーに対して となっています。 上記のテーブルから、 「タグの名前に '%hoge%'を持ち、かつ、作品の名前に'%hogehoge%'を含む作品一覧」を取得したいのですが、どういった方法が考えられるでしょうか? また、Worksのidが同じものは2度表示しないようにしたいと考えています。 使用しているDBは、MySQL のバージョン5です。 どうか宜しくお願いします。

    • ベストアンサー
    • MySQL
  • JAVAの初心者です.

    import java.io.*; class Sample3 { public static void main(String args[])throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int meny; int max = 0; int kingaku[]; kingaku = new int[5]; char ss[][]; ss = new char[5][80]; do{ String hako = br.readLine(); meny = Integer.parseInt(hako); System.out.println("1:入力とその長さ"); System.out.println("2:データ入力"); System.out.println("3:データ表示"); System.out.println("4:おしまい"); switch(meny){ case 1: System.out.println("文字を入力してください。"); String input = br.readLine(); System.out.println(input + "は" + input.length + "文字です。"); break; case 2: if (max == 0){ System.out.printin("登録をしてからお選びください。"); }else{ System.out.println("名前を入力してください。"); String ss[max] = br.readLine(); System.out.println("金額を入力してください。"); String kingaku[max] = br.readLine(); System.out.println(ss[max] + "さんで" + kingaku[max] + "を登録します。"); max++; } break; case 3: System.out.println("現在登録人数は" + max + "人です。"); for(int aa = 0;aa<max;aa++){ System.out.println(name[max] + kingaku[max]); } break; } }while(meny != 4); } } 上記のソースなのですが、コンパイルで今のところ2つエラーが出てしまうのです。 String ss[max] = br.readLine(); String kingaku[max] = br.readLine(); の所がエラーと表示されます。 javaは入力した文字を表示するだけでしたら    = Integer.paruseint()する必要ないですよね?? 初心者ならではの質問でごめんなさい。 ご教授宜しくお願いいたします。

    • ベストアンサー
    • Java
  • Java初心者です。勉強のためにJavaを使ったアプリケーションの開発

    Java初心者です。勉強のためにJavaを使ったアプリケーションの開発をしています。DBから取得した日本語文字列が文字化けしてしまうので、アドバイスを頂きたいです。 【環境】 Win XP Pro SP2 Eclipse 3.4.2 tomcat 6.0 JDK 1.6.0_14 Struts 1.3.10 Access 2000 上記の環境で簡単なログインページを作成しています。IDとパスワードを入力して、DB認証がOKならユーザ名称を取得してメニュー画面に遷移し、取得したユーザ名称を表示するという仕様です。 デバッグして追っていくと、以下のことが分かりました。 (1)ログイン画面で入力したID・パスワードは正しくサーブレットに渡っている (2)SQLを発行してDBよりデータを取得する段階で文字化けが発生している (2)でデータを取得する時に、HashMapのgetメソッドを使っています。文字化けしたデータは ???????G となってしまっています。DB(Access)からUnicodeへのエンコードがうまくいっていないのでしょうか?恥ずかしながらDB(Access)の文字コードの調べ方が分かりません。 ※ドライバはsun.jdbc.odbc.JdbcOdbcDriverを使用しています。 【Login_Anken_Business.java】 public class Login_Anken_Business extends BaseBusiness { public String getLoginUserName(String userid, String password) { StringBuilder sbQuery = new StringBuilder(); sbQuery.append("SELECT"); sbQuery.append(" m04_name_user "); sbQuery.append("FROM"); sbQuery.append(" M04_USER "); sbQuery.append("WHERE"); sbQuery.append(" m04_id_user = '"); sbQuery.append(userid); sbQuery.append("' "); sbQuery.append("AND"); sbQuery.append(" m04_txt_password = '"); sbQuery.append(password); sbQuery.append("' "); HashMap<String, String> result = selectOneRecord(sbQuery.toString()); if (result == null) { return null; } else { return result.get("m04_name_user"); → ここで文字化け発生 } } }

  • Java初心者です。勉強のためにJavaを使ったアプリケーションの開発

    Java初心者です。勉強のためにJavaを使ったアプリケーションの開発をしています。DBから取得した日本語文字列が文字化けしてしまうので、アドバイスを頂きたいです。 【環境】 Win XP Pro SP2 Eclipse 3.4.2 tomcat 6.0 JDK 1.6.0_14 Struts 1.3.10 Access 2000 上記の環境で簡単なログインページを作成しています。IDとパスワードを入力して、DB認証がOKならユーザ名称を取得してメニュー画面に遷移し、取得したユーザ名称を表示するという仕様です。 デバッグして追っていくと、以下のことが分かりました。 (1)ログイン画面で入力したID・パスワードは正しくサーブレットに渡っている (2)SQLを発行してDBよりデータを取得する段階で文字化けが発生している (2)でデータを取得する時に、HashMapのgetメソッドを使っています。文字化けしたデータは ???????G となってしまっています。DB(Access)からUnicodeへのエンコードがうまくいっていないのでしょうか?恥ずかしながらDB(Access)の文字コードの調べ方が分かりません。 ※ドライバはsun.jdbc.odbc.JdbcOdbcDriverを使用しています。 【Login_Anken_Business.java】 public class Login_Anken_Business extends BaseBusiness { public String getLoginUserName(String userid, String password) { StringBuilder sbQuery = new StringBuilder(); sbQuery.append("SELECT"); sbQuery.append(" m04_name_user "); sbQuery.append("FROM"); sbQuery.append(" M04_USER "); sbQuery.append("WHERE"); sbQuery.append(" m04_id_user = '"); sbQuery.append(userid); sbQuery.append("' "); sbQuery.append("AND"); sbQuery.append(" m04_txt_password = '"); sbQuery.append(password); sbQuery.append("' "); HashMap<String, String> result = selectOneRecord(sbQuery.toString()); if (result == null) { return null; } else { return result.get("m04_name_user"); → ここで文字化け発生 } } }

  • クイズ形式サイトの復習機能の構造

    ここのカテゴリでよいのか自信はないですが質問させていただきます。当方、PHP+MYSQLを使ってクイズ形式で学習問題(教科別)を提供するサイトを運営しています。 ユーザのアカウントを例えば間違った問題について、復習リストに記録してそれを元にしてDBから該当問題を順に取得し、問題に正解した場合はリストから削除するなどの機能を実現しているのですが・・・ DBのテーブルとしては ユーザ情報のテーブル 問題のテーブル があります。 やり方には2種類あるとおもうのですが・・・ 1.例えばユーザ情報のミス問題の番号を格納するフィールドを作成して、そのユーザ情報からミス問題リストを取得する方法。 2.問題テーブルに間違ったユーザのIDを記録するフィールドを作成し、復習する場合はMYSQLでユーザIDがミスフィールドに含まれいるものを検索する方法があると思います。 そこで、現在は1のやりかたで運用しているのですが、2に変更しようかなと思っています。理由は、教科別なので、PHPの配列でいろいろいじるより、問題リストを取得する際にMYSQLにやらせたほうが楽であろうと思うからなのですが・・・ 普通はこういうプログラムをする場合って、 プロ?の方はどのような制御をやられているのでしょうか? 簡略にまとめると各テーブルのフィールドはこんな感じです 1. user[ id/miss問題[22,339,292(問題id)] 2. user[ id ] 問題DB[ 問題/missuser[3922/2932(userid)]

    • ベストアンサー
    • PHP
  • プライベート機能の作成

    今現在、Wikiシステムに似たようなアプリを作成しており、かくユーザーごとのプライベート機能を作成していましたが自力では解決できずみなさまのお力を借りれればと思い質問させていただきました。 DBに oshiete&goo&blog&zip&ttn&google のように観覧可能なユーザーを&で区切って格納しています。 oshieteというIDでユーザー認証が必要なページにアクセスした際、DBの観覧可能なユーザーカラムから&を取り除いた各ユーザー名を取得し、もしその中にoshieteというID名があれば表示、なければエラーメッセージを表示という機能を装備したいのですがなかなかうまくいきません。 ご存知の方よろしくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう