前提・実現したいこと
「すっきりわかるサーブレット&JSP 入門」の参考書を用い参考書通りのコードで、つぶやき機能を持つWebアプリケーションを作りすべて問題なく動作はするのですが、H2DBコンソール画面でSELECT文を入力しても更新されていません。まだ学習を始めたばかりで基礎的な部分を間違えている可能性があるのですがご教示いただければ幸いです。
発生している問題・エラーメッセージ
エラーは発生しておりません。
該当のソースコード
Java
1[DAOクラス] 2package dao; 3 4import java.sql.Connection; 5import java.sql.DriverManager; 6import java.sql.PreparedStatement; 7import java.sql.ResultSet; 8import java.sql.SQLException; 9import java.util.ArrayList; 10import java.util.List; 11 12import model.Mutter; 13 14public class MutterDAO { 15 16 private final String JDBC_URL = "jdbc:h2:tcp://localhost/~/docoTsubu"; 17 private final String DB_USER = "sa"; 18 private final String DB_PASS = ""; 19 20 public List<Mutter> findAll(){ 21 List<Mutter>mutterList = new ArrayList<>(); 22 23 try(Connection conn = DriverManager.getConnection(JDBC_URL, DB_USER, DB_PASS)){ 24 String sql = "SELECT ID, NAME, TEXT FROM MUTTER ORDER BY ID DESC"; 25 PreparedStatement pStmt = conn.prepareStatement(sql); 26 27 ResultSet rs = pStmt.executeQuery(); 28 29 while(rs.next()) { 30 int id = rs.getInt("ID"); 31 String userName = rs.getString("NAME"); 32 String text = rs.getString("TEXT"); 33 Mutter mutter = new Mutter(id,userName,text); 34 mutterList.add(mutter); 35 } 36 }catch(SQLException e) { 37 e.printStackTrace(); 38 return null; 39 } 40 return mutterList; 41 42 43 } 44 45 public boolean create (Mutter mutter) { 46 try(Connection conn = DriverManager.getConnection(JDBC_URL, DB_USER, DB_PASS)){ 47 String sql = "INSERT INTO MUTTER(NAME,TEXT) VALUES(?,?)"; 48 PreparedStatement pStmt = conn.prepareStatement(sql); 49 50 pStmt.setString(1,mutter.getUserName()); 51 pStmt.setString(2,mutter.getText()); 52 53 int result = pStmt.executeUpdate(); 54 if(result != 1) { 55 return false; 56 } 57 }catch (SQLException e) { 58 e.printStackTrace(); 59 return false; 60 } 61 return true; 62 } 63 64} 65 66 67[JSPファイル] 68<%@ page language="java" contentType="text/html; charset=UTF-8" 69 pageEncoding="UTF-8"%> 70<%@ page import= "model.User, model.Mutter, java.util.List " %> 71<% 72User loginUser = (User)session.getAttribute("loginUser"); 73List<Mutter>mutterList = (List<Mutter>)request.getAttribute("mutterList"); 74String errorMsg = (String)request.getAttribute("errorMsg"); 75%> 76<!DOCTYPE html> 77<html> 78<head> 79<meta charset="UTF-8"> 80<title>どこつぶ</title> 81</head> 82<body> 83<h1>どこつぶメイン</h1> 84<p> 85<%= loginUser.getName() %>さん、ログイン中<br> 86<a href="/docoTsubu/Logout">ログアウト</a> 87</p> 88<p><a href="/docoTsubu/Main">更新</a> 89<form action="/docoTsubu/Main" method="post"> 90<input type="text" name="text"> 91<input type="submit" value="つぶやく"> 92</form> 93<%if(errorMsg != null){ %> 94<p><%=errorMsg %></p> 95<%} %> 96<% for(Mutter mutter : mutterList){%> 97 <p><%=mutter.getUserName() %>:<%=mutter.getText() %></p> 98 99<%}%> 100</body> 101</html>
3026c8abfa01de9caa6f36f8.jpeg)
試したこと
・DAOクラスの「private final String JDBC_URL = "jdbc:h2:tcp://localhost/~/docoTsubu"」の部分のURLを変更してもなぜかそのままブラウザ画面の結果は通常通り更新されました。
補足情報(FW/ツールのバージョンなど)
eclipseでJava11、Tomcat9を使用しております。
この画面上で複数のコードの挿入方法が分からず、DAOクラスとJSPファイルを連続して記述してしまいました。見にくいとは思いますがどうぞよろしくお願いいたします。
あなたの回答
tips
プレビュー