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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

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

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

1030閲覧

jspで表示させたい値と、取得した値がずれている

nyan_engineer

総合スコア30

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

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

servlet

Servletとは、Webページの動的な生成やデータ処理などをサーバ上で実行するために、Javaで作成されたプログラムです。 ショッピングサイトやオンラインバンキングといった、動的なウェブサイトの構築に用いられています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2019/01/21 06:05

編集2019/01/21 06:30

表題について質問があります。
社員データの管理システムを、MVCモデルを利用して作成しております。

以下の流れで社員データの詳細画面を表示させたいのですが、
表示させたときに各項目で表示させたい値と取得してきた値にずれが生じております。
(生年月日の欄にメールアドレスが表示されているetc)

①list.jspでデータの一覧を表示
②「詳細」リンクを押し、EmployeeControlServletにて詳細画面へ遷移する処理を実行
③EmployeeListDAOにてデータベースより値を取得
③detail.jspで詳細画面を表示

コードは以下となります。
なぜ表示がずれてしまうのか、ご教授いただければ幸いです。

EmployeeListDAO

1 2public class EmployeeListDAO { 3 4 //定数宣言 5 private final String useSSL = ""; 6 private final String userName = ""; 7 private final String password = ""; 8 private final String jdbcDriver = ""; 9 10 public EmployeeInfo employeeGet(String employee_id) throws Exception{ 11 12 EmployeeInfo employeeInfo = null; 13 Connection conn = null; 14 PreparedStatement pStmt = null; 15 ResultSet rs = null; 16 int employeeId ; 17 18 try { 19 //社員IDをint型へ変換 20 employeeId = Integer.parseInt(employee_id); 21 //JDBCドライバを読み込む 22 Class.forName(jdbcDriver); 23 //データベース接続 24 conn = DriverManager.getConnection(useSSL,userName,password); 25 //SELECT文を準備 26 String sql = "SELECT E1.EMPLOYEE_ID,E1.NAME,E1.NAME_HIRAGANA,E1.BIRTHDAY,E1.SEX,E1.MAIL_ADDRESS,E1.TELEPHONE_NUMBER,E1.COMPANY_INFO_ID,E1.BUSINESS_MANAGER,E1.DEPARTMENT,E1.COMMISSIONING_STATUS,E2.ENTER_DATE,E2.RETIRE_DATE,E2.STATUS " + 27 "FROM EMPLOYEE_INFO AS E1 " + 28 "INNER JOIN EMPLOYEE_STATE AS E2 " + 29 "ON E1.EMPLOYEE_ID = E2.EMPLOYEE_INFO_ID " + 30 "WHERE E1.EMPLOYEE_ID = ?;"; 31 32 //SQLを設定 33 pStmt = conn.prepareStatement(sql); 34 35 //パラメータをセット 36 pStmt.setInt(1,employeeId); 37 38 //SELECT文を実行し、結果表を取得 39 rs = pStmt.executeQuery(); 40 41 //取り出したデータをemployeeListに設置 42 if(rs.next()) { 43 44 //結果表からデータを取得 45 String name = rs.getString("NAME"); 46 String name_hiragana = rs.getString("NAME_HIRAGANA"); 47 String sex = rs.getString("SEX"); 48 String mail_address = rs.getString("MAIL_ADDRESS"); 49 String business_manager = rs.getString("BUSINESS_MANAGER"); 50 String telephone_number = rs.getString("TELEPHONE_NUMBER"); 51 String birthday = rs.getString("BIRTHDAY"); 52 String enter_date = rs.getString("ENTER_DATE"); 53 String retire_date = rs.getString("RETIRE_DATE"); 54 String company_info_id = rs.getString("COMPANY_INFO_ID"); 55 String department = rs.getString("DEPARTMENT"); 56 String commissioning_status = rs.getString("COMMISSIONING_STATUS"); 57 String status = rs.getString("STATUS"); 58 59 employeeInfo = new EmployeeInfo(employeeId,name,name_hiragana,sex,mail_address,business_manager,telephone_number,birthday,enter_date,retire_date,company_info_id,department,commissioning_status,status); 60 } 61 else { 62 throw new Exception("社員IDが見つかりませんでした:"+ employeeId); 63 } 64 }finally { 65 //データベースを切断 66 if(conn != null) { 67 68 try { 69 conn.close(); 70 71 }catch(SQLException e) { 72 e.printStackTrace(); 73 74 return null; 75 } 76 } 77 } 78 return employeeInfo; 79 } 80} 81

detail

1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 4<!DOCTYPE html> 5<html> 6 7<head> 8<meta charset="UTF-8"> 9<title>社員詳細</title> 10 11<link type="text/css" rel="stylesheet" href="css/style.css"> 12<link type="text/css" rel="stylesheet" href="css/add-employee-style.css"> 13</head> 14 15<body> 16 17 <div id="container"> 18 <h3>社員詳細</h3> 19 20 <form action="EmployeeControlServlet" method="POST"> 21 22 <c:choose> 23 24 <c:when test="${THE_EMPLOYEE.employee_id == null }"> 25 <input type="hidden" name="command" value="ADD" /> 26 </c:when> 27 28 <c:when test="${THE_EMPLOYEE.employee_id != null }"> 29 <input type="hidden" name="command" value="UPDATE" /> 30 <input type="hidden" name="employee_id" 31 value="${THE_EMPLOYEE.employee_id}" /> 32 </c:when> 33 34 <c:otherwise> 35 エラーが発生しました 36 </c:otherwise> 37 </c:choose> 38 39 <table> 40 <tbody> 41 <tr> 42 <td><label>氏名</label></td> 43 <td><input type="text" name="name" 44 value="${THE_EMPLOYEE.name }" maxlength="20" /></td> 45 </tr> 46 47 <tr> 48 <td><label>氏名(ひらがな)</label></td> 49 <td><input type="text" name="name_hiragana" 50 value="${THE_EMPLOYEE.name_hiragana }" maxlength="20" /></td> 51 </tr> 52 53 <tr> 54 <td><label>生年月日</label></td> 55 <td><input type="text" name="birthday" 56 value="${THE_EMPLOYEE.birthday }" maxlength="10" /></td> 57 </tr> 58 59 <tr> 60 <td><label>性別</label></td> 61 <td><input type="radio" name="sex" 62 <c:if test="${THE_EMPLOYEE.sex != '1'}">checked</c:if> value="0" /> 63 男 <input type="radio" name="sex" 64 <c:if test="${THE_EMPLOYEE.sex == '1'}">checked</c:if> value="1" /> 65 女</td> 66 </tr> 67 68 <tr> 69 <td><label>メールアドレス</label></td> 70 <td><input type="text" name="mail_address" 71 value="${THE_EMPLOYEE.mail_address }" maxlength="50" /></td> 72 </tr> 73 <tr> 74 <td><label>電話番号</label></td> 75 <td><input type="text" name="telephone_number" 76 value="${THE_EMPLOYEE.telephone_number }" maxlength="13" /></td> 77 </tr>

EmployeeInfo

1public class EmployeeInfo implements Serializable{ 2 3 private int employee_id; //社員ID employee_info 4 private String name; //氏名 employee_info 5 private String name_hiragana; //氏名(ひらがな) employee_info 6 private String business_manager; //担当管理営業 employee_info 7 private String birthday; //生年月日 employee_info 8 private String sex; //性別 employee_info 9 private String mail_address; //メールアドレス employee_info 10 private String telephone_number; //電話番号 employee_info 11 private String enter_date; //入社日 employee_state 12 private String retire_date; //退社日 employee_state 13 private String company_info_id; //所属会社ID employee_info 14 private String department; //事業部 employee_info 15 private String commissioning_status; //稼働状況 employee_info 16 private String status; //ステータス employee_state 17 18 19 public EmployeeInfo() { 20 21 } 22 23 /** 24 * 社員リストメソッド 25 * list.jsp表示用 26 * 27 * @param employee_id 28 * @param name 29 * @param name_hiragana 30 * @param business_manager 31 * @param birthday 32 * @param enter_date 33 * @param company_info_id 34 * @param department 35 * @param commissioning_status 36 */ 37 public EmployeeInfo(int employee_id, String name,String name_hiragana, String business_manager,String birthday,String enter_date,String company_info_id,String department,String commissioning_status) { 38 39 this.employee_id = employee_id; 40 this.name = name; 41 this.name_hiragana = name_hiragana; 42 this.business_manager = business_manager; 43 this.birthday = birthday; 44 this.enter_date = enter_date; 45 this.company_info_id = company_info_id; 46 this.department = department; 47 this.commissioning_status = commissioning_status; 48 49 } 50 51 /** 52 * 社員リストメソッド 53 * detail.jsp用 54 * 55 * @param name 56 * @param name_hiragana 57 * @param business_manager 58 * @param birthday 59 * @param sex 60 * @param mail_address 61 * @param tel_number 62 * @param company 63 * @param enter_date 64 * @param retire_date 65 * @param company_info_id 66 * @param department 67 * @param commissioning_status 68 * @param status 69 */ 70 public EmployeeInfo(String name,String name_hiragana, String business_manager,String birthday,String sex,String mail_address,String telephone_number,String enter_date,String retire_date,String company_info_id,String department,String commissioning_status,String status) { 71 72 this.name = name; 73 this.name_hiragana = name_hiragana; 74 this.sex = sex; 75 this.mail_address = mail_address; 76 this.business_manager = business_manager; 77 this.telephone_number = telephone_number; 78 this.birthday = birthday; 79 this.enter_date = enter_date; 80 this.retire_date = retire_date; 81 this.company_info_id = company_info_id; 82 this.department = department; 83 this.commissioning_status = commissioning_status; 84 this.status = status; 85 86 } 87 88 public EmployeeInfo(int employee_id,String name,String name_hiragana, String business_manager,String birthday,String sex,String mail_address,String telephone_number,String enter_date,String retire_date,String company_info_id,String department,String commissioning_status,String status) { 89 90 this.employee_id = employee_id; 91 this.name = name; 92 this.name_hiragana = name_hiragana; 93 this.sex = sex; 94 this.mail_address = mail_address; 95 this.business_manager = business_manager; 96 this.telephone_number = telephone_number; 97 this.birthday = birthday; 98 this.enter_date = enter_date; 99 this.retire_date = retire_date; 100 this.company_info_id = company_info_id; 101 this.department = department; 102 this.commissioning_status = commissioning_status; 103 this.status = status; 104 105 } 106 107}

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

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

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

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

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

m.ts10806

2019/01/21 06:10

ローカル運用のものでしょうか。DB接続情報がそのまま書かれておりますが問題ないのでしょうか。社内システムであればテーブル構造含めて公開してはいけない情報もあるのではないでしょうか。 もしまずいのであれば質問を「削除依頼」だしてください(編集では履歴から確認可能です)
nyan_engineer

2019/01/21 06:21

ローカル運用ですので問題ありませんが、載せないほうがよさそうですね、、 修正しておきました。ご指摘いただきありがとうございます。
m.ts10806

2019/01/21 06:24

最後に書きましたが「編集では履歴から確認可能です」 「載せない方がよい」と判断されたのでしたら削除依頼を出されるのが適当です。
tkturbo

2019/01/21 06:25

EmployeeInfoクラスのソースコードも追加願います。(たぶんここが問題の原因)
nyan_engineer

2019/01/21 06:44

>mts10806さん 特段、問題はありませんのでこのまま質問依頼を出させていただきます。 ご指摘ありがとうございます。 >tkturboさん ソースコードを追加しました。(文字数の関係上、EmployeeControlServletは削除しました)
guest

回答2

0

ベストアンサー

呼んでいるコンストラクタは、こちらだと思いますが

java

1public EmployeeInfo(int employee_id,String name,String name_hiragana, String business_manager,String birthday,String sex,String mail_address,String telephone_number,String enter_date,String retire_date,String company_info_id,String department,String commissioning_status,String status) {

実際のわたしている引数の順序は、以下のようになってますので、違うフィールドに値が設定されていると思います。

java

1new EmployeeInfo(employeeId,name,name_hiragana,sex,mail_address,business_manager,telephone_number,birthday,enter_date,retire_date,company_info_id,department,commissioning_status,status);

投稿2019/01/21 07:53

momon-ga

総合スコア4820

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

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

nyan_engineer

2019/01/22 12:36

ご回答いただきありがとうございます。 引数の順序という基本的な部分が抜けてました。。 正常に表示されるようになりました!ありがとうございました。
guest

0

EmployeeInfoのコンストラクタの使い方が間違っている。

java

1// EmployeeListDAO 2employeeInfo = new EmployeeInfo(employeeId, 3 name, 4 name_hiragana, 5 sex, 6 mail_address, 7 business_manager, 8 telephone_number, 9 birthday, 10 enter_date, 11 retire_date, 12 company_info_id, 13 department, 14 commissioning_status, 15 status);

java

1// EmployeeInfo 2public EmployeeInfo(int employee_id, 3 String name, 4 String name_hiragana, 5 String business_manager, 6 String birthday, 7 String sex, 8 String mail_address, 9 String telephone_number, 10 String enter_date, 11 String retire_date, 12 String company_info_id, 13 String department, 14 String commissioning_status, 15 String status) {

投稿2019/01/21 07:54

tkturbo

総合スコア5572

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問