前提・実現したいこと
java初心者です。
下記コードで、
import元のDAOではcreate()の戻り値型はbooleanになっているのですが、
使用されているBOのexecute()はなぜ戻り値がないのでしょうか?
ものすごく初歩的な所でつまずいてる様な気もしますが、
今は、思い当たりません。
ご教示お願いいたします。
その他、
記載方法に改善点がある場合は、ご指摘下さいませ。
該当のソースコード
MainのdoPostで使用するBO
java
1 2package model; 3 4import dao.MutterDAO; 5 6public class PostMutterLogic { 7 public void execute(Mutter mutter) { // 引数を1つに変更 8 MutterDAO dao = new MutterDAO(); 9 dao.create(mutter); 10 } 11} 12```DB保存された投稿内容をリスト格納して返す **findAll()** と 13投稿内容を**DB**に**INSERT**する **create()** を持つ**DAO** 14コード 15```java 16package dao; 17 18import java.sql.Connection; 19import java.sql.DriverManager; 20import java.sql.PreparedStatement; 21import java.sql.ResultSet; 22import java.sql.SQLException; 23import java.util.ArrayList; 24import java.util.List; 25 26import model.Mutter; 27 28public class MutterDAO { 29 30 private final String DRIVER_NAME = "org.h2.Driver"; 31 private final String JDBC_URL = 32 "jdbc:h2:file:C:/data/docoTsubu"; 33 private final String DB_USER = "sa"; 34 private final String DB_PASS = ""; 35 36 public List<Mutter> findAll() { 37 Connection conn = null; 38 List<Mutter> mutterList = new ArrayList<Mutter>(); 39 try { 40 Class.forName(DRIVER_NAME); 41 conn = DriverManager.getConnection( 42 JDBC_URL, DB_USER, DB_PASS); 43 44 // SELECT文の準備 45 String sql = 46 "SELECT ID,NAME,TEXT FROM MUTTER ORDER BY ID DESC"; 47 PreparedStatement pStmt = conn.prepareStatement(sql); 48 49 // SELECTを実行 50 ResultSet rs = pStmt.executeQuery(); 51 52 // SELECT文の結果をArrayListに格納 53 while (rs.next()) { 54 int id = rs.getInt("ID"); 55 String userName = rs.getString("NAME"); 56 String text = rs.getString("TEXT"); 57 Mutter mutter = new Mutter(id, userName, text); 58 mutterList.add(mutter); 59 } 60 } catch (SQLException e) { 61 e.printStackTrace(); 62 return null; 63 } catch (ClassNotFoundException e) { 64 e.printStackTrace(); 65 return null; 66 } finally { 67 // データベース切断 68 if (conn != null) { 69 try { 70 conn.close(); 71 } catch (SQLException e) { 72 e.printStackTrace(); 73 return null; 74 } 75 } 76 } 77 return mutterList; 78 } 79 80 public boolean create(Mutter mutter) { 81 Connection conn = null; 82 try { 83 // データベースへ接続 84 conn = DriverManager.getConnection( 85 JDBC_URL, DB_USER, DB_PASS); 86 87 // INSERT文の準備(idは自動連番なので指定しなくてよい) 88 String sql = "INSERT INTO MUTTER(NAME, TEXT) VALUES(?, ?)"; 89 PreparedStatement pStmt = conn.prepareStatement(sql); 90 // INSERT文中の「?」に使用する値を設定しSQLを完成 91 pStmt.setString(1, mutter.getUserName()); 92 pStmt.setString(2, mutter.getText()); 93 94 // INSERT文を実行 95 int result = pStmt.executeUpdate(); 96 97 if (result != 1) { 98 return false; 99 } 100 } catch (SQLException e) { 101 e.printStackTrace(); 102 return false; 103 } finally { 104 105 // データベース切断 106 if (conn != null) { 107 try { 108 conn.close(); 109 } catch (SQLException e) { 110 e.printStackTrace(); 111 } 112 } 113 } 114 return true; 115 } 116} 117
回答1件
あなたの回答
tips
プレビュー