もしかしたら解決済みかもしれませんが…
基本的にはデザインパターンの一つである「Data Access Object」をベースにすると良いと思います。
DAOパターン | 神田ITスクール
DAOの利点としては
- データを扱う部分をロジックと分離する事で整備性を改善する。
- データベース関連の機能を全部集約する事で、同じデータ取得を行うような処理を何度も書かなくて済む。
- トランザクションの管理がしやすくなる。
…など色々と利点はあります。
初期ソース時点で、コネクションの生成等の際にtry-with-resourcesを利用しているのは、とても良いことだと思います。(コネクションのクローズ漏れは例外発生に繋がる為)
一例にはなりますが、記載されていたソースを、よく見るDAOに改変した物を記載しておきます。(尚動作未確認)
Java
1import java.sql.Connection;
2import java.sql.DriverManager;
3import java.sql.SQLException;
4
5public class DaoBase {
6 private static final String JDBC = "jdbc:mysql://localhost:3306/study";
7 private static final String USER = "root";
8 private static final String PASSWORD = "pass";
9
10 protected static Connection getConnection() throws SQLException {
11 return DriverManager.getConnection(JDBC, USER, PASSWORD);
12 }
13}
Java
1import java.sql.Connection;
2import java.sql.PreparedStatement;
3import java.sql.ResultSet;
4import java.sql.SQLException;
5
6public class Dao extends DaoBase {
7 public static void getRecord() throws SQLException {
8 final String sql = "select * from tbl_bank where NO >= ?";
9
10 try (Connection con = getConnection();
11 PreparedStatement st = con.prepareStatement(sql)) {
12 st.setInt(1, 1);
13 ResultSet rs = st.executeQuery();
14 while (rs.next()) {
15 int id = rs.getInt("NO");
16 String name = rs.getString("BANK_NAME");
17 System.out.println(id + " " + name);
18 }
19 }
20 }
21}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/09/29 12:47