背景・実現したいこと
Javaを使用して1週間分の業務内容・進捗予定・実績をまとめて、それに対してコメントを付けるといったシステム(週報のようなもの)を作っています。
DB上にある業務内容・進捗予定・実績のデータを動的にDaoクラスで受け取り、jsp側で表示していきたいのですが、できません。
デバッグを行い、処理内容を確認してみました。
・Daoクラスで取得したDB上のデータが取得できず、Implementsクラスでデータを全てList型変数に格納できない。(拡張for文が回せない)
→データが入っていないので当たり前かと思いますが。
SQL文を各種Webサイトで見ながら改変してもデータが受け取れないどころかbadsqlgrammarとコンソール内に表示してしまいます。
ここ数日間書籍やWebサイトなどみて検討をしてみたのですが解決には至らなかったのでお力添えいただければと思います。
(DaoにSQL文を記述する前にpgAdminⅢでSQL文が合っているか確認したところ、データを取得することができたので、恐らくですがDaoクラス内の配列の受け取り?に問題があるのではと推測しております。)
実行環境は
・Java8
・Eclipse neon 4.6
・Apache Tomcat 8.0
・SpringMVC
・postgresql
・pgAdminⅢです。
該当のソースコード
Java:Daoクラス
1public List<CommentReportDto> selectCommentList() throws ComponentException { 2 3 StringBuilder sql = new StringBuilder(); 4 sql.append(" select"); 5 sql.append(" user_no"); // ユーザーNo. 6 sql.append(" ,comment_date"); // コメント年月日 7 sql.append(" ,contents_text_array"); // 内容(配列) 8 sql.append(" ,plan_text_array"); // 予定(配列) 9 sql.append(" ,actual_text_array"); // 実績(配列) 10 sql.append(" ,comment1_text"); // コメント1 11 sql.append(" ,comment2_text"); // コメント2 12 sql.append(" ,comment3_text"); // コメント3 13 sql.append(" from"); 14 sql.append(" trn_comment_report"); 15 sql.append(" where"); 16 sql.append(" contents_text_array ='{?,?,?,?,?,?,?,?}'");//要素1~7まで 17 sql.append(" and"); 18 sql.append(" plan_text_array = '{?,?,?,?,?,?,?,?}'"); 19 sql.append(" and"); 20 sql.append(" actual_text_array = '{?,?,?,?,?,?,?,?}'"); 21 22 try { 23 RowMapper<CommentReportDto> rowMapper = new BeanPropertyRowMapper<>( 24 CommentReportDto.class); 25 return this.jdbcTemplate.query(sql.toString(), rowMapper); 26 27 } catch (Exception e) { 28 e.printStackTrace(); 29 throw new ComponentException("一覧取得失敗.", e); 30 } 31} 32
Java:Implements
1@Service 2public class CommentReportImplements implements CommentReportInterface { 3 4 5 private CommentReportDao commentReportDao; 6 7 @Autowired 8 public CommentReportImplements(CommentReportDao commentReportDao) { 9 this.commentReportDao = commentReportDao; 10 } 11 12 @Override 13 public List<CommentReportBean> getCommentReportList() throws ComponentException { 14 List<CommentReportDto> listDto = this.commentReportDao.selectCommentList(); 15 List<CommentReportBean> list = new ArrayList<>(); 16 17 for (CommentReportDto dto : listDto) { 18 CommentReportBean bean = new CommentReportBean(); 19 bean.setUserNo(dto.getUserNo()); 20 bean.setCommentDate(dto.getCommentDate()); 21 bean.setContentsTextArray(dto.getContentsTextArray()); 22 bean.setPlanTextArray(dto.getPlanTextArray()); 23 bean.setActualTextArray(dto.getActualTextArray()); 24 bean.setComment1Text(dto.getComment1Text()); 25 bean.setComment2Text(dto.getComment2Text()); 26 bean.setComment3Text(dto.getComment3Text()); 27 28 list.add(bean); 29 } 30 31 return list; 32 } 33}
Java:Controller
1@Controller 2@RequestMapping(value = "manager") 3public class CommentReportListController { 4 5 private final CommentReportInterface commentReportInterface; 6 7 @Autowired 8 public CommentReportListController(CommentReportInterface commentReportInterface) { 9 this.commentReportInterface = commentReportInterface; 10 } 11 12 @RequestMapping(value = "commentReportList", method = RequestMethod.GET) 13 public String init(HttpServletRequest request) throws ComponentException { 14 try { 15 List<CommentReportBean> list = this.commentReportInterface.getCommentReportList(); 16 17 request.setAttribute("commentReportBeanList", list); 18 19 return "/manager/commentReportListView"; 20 21 } catch (Exception e) { 22 e.printStackTrace(); 23 throw new ComponentException("例外発生.", e); 24 } 25 } 26}
jsp
1 2<body> 3 <jsp:include page="../navigation/navigationBar.jsp" /> 4 <div class="container-fluid"> 5 <h1>コメント一覧画面</h1> 6 <p> 7 <button type="button" 8 onclick="location.href='../manager/commentCompanyTraineeList'" 9 class="btn btn-warning">社員一覧へ戻る</button> 10 </p> 11 <p> 12 <div class="row"> 13 <div class="col-12"> 14 <h4 id="date-6" class="center"> 15 2019年8月第1週 16 <button type="button" 17 onclick="location.href='../manager/commentReportRegister'" 18 class="btn btn-info">コメント登録</button> 19 <button type="button" 20 onclick="location.href='../manager/commentReportEdit'" 21 class="btn btn-info">コメント編集</button> 22 </h4> 23 <table class="table table-bordered"> 24 <thead class="thead-job-color"> 25 <tr> 26 <th class="right">日付</th> 27 <th class="center">曜<br>日 28 </th> 29 <th>内容</th> 30 <th>予定</th> 31 <th>実績</th> 32 </tr> 33 </thead> 34 <tbody> 35 <c:forEach items="${requestScope.workBeanList}" var="workBean" varStatus=""> 36 <tr class="vacation"> 37 <td class="right">${workBean.localDate}</td> 38 <td class="center">${workBean.dayOfTheWeek}</td> 39 </tr> 40 </c:forEach> 41 <c:forEach items="${requestScope.commentReportEditList}" var="commentBean" varStatus=""> 42 <tr class="vacation"> 43 <td class="pre-line">${commentBean.contentsTextArray}</td> 44 <td class="pre-line">${commentBean.planTextArray}</td> 45 <td class="pre-line">${commentBean.actualTextArray}</td> 46 </tr> 47 </c:forEach> 48 </tbody> 49 </table> 50 <table class="table table-bordered"> 51 <thead class="thead-job-color"> 52 <tr> 53 <th>コメント</th> 54 </tr> 55 </thead> 56 <tbody> 57 <tr> 58 <td> 59 <p> 60 <label for="comment1Text" class="label-control">コメント1</label><br> 61 <textarea id="comment1Text" name="comment1Text" rows="6" cols="80" class="form-control" ></textarea> 62 </p> 63 </td> 64 </tr> 65 66 <tr> 67 <td> 68 <p> 69 <label for="comment2Text" class="label-control">コメント2</label><br> 70 <textarea id="comment2Text" name="comment2Text" rows="6" cols="80" class="form-control" ></textarea> 71 </p> 72 </td> 73 </tr> 74 75 <tr> 76 <td> 77 <p> 78 <label for="comment3Text" class="label-control">コメント3</label><br> 79 <textarea id="comment2Text" name="comment2Text" rows="6" cols="80" class="form-control" ></textarea> 80 </p> 81 </td> 82 </tr> 83 </tbody> 84 </table> 85 </div> 86 </div> 87 </div> 88</body> 89</html>
【テーブル定義】
・user_no:Integer型、notnull、プライマリーキー・外部キー
・comment_date:date型、notnull、プライマリーキー
・contents_text_array:Text[]型
・plan_text_array:Text[]型
・actual_text_array:Text[]型
・comment1_text:text型
・comment2_text:text型
・comment3_text:text型
・release_start_timestamp:Timestamp型、notnull
回答1件
あなたの回答
tips
プレビュー