Apache Commons を利用した Java でのプログラム作成問題の16回目となります。
環境を構築していない場合は、概要を読み、環境を構築してから実施してください。
※この出題形式に関しては答えは1つではありません。
解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正解として下さい。
準備
今回からDBへの接続プログラムを問題として出していきます。
DBの環境構築を行ってください。
問題では、MariaDBを利用しています。
Windows環境の場合は、XAMPPをインストールしてください。
XAMPPの場合は、phpMyAdminが利用できますので、DB操作はそちらを利用すると楽です。
ブラウザを開き、http://localhost/phpmyadmin/にアクセスすれば、見れるはずです。
まず、Databaseを作成します。
この問題では、tech_pjinとしています。
続いて、tableを作成します。
todo
# | 項目名 | データ型(長さ) | オプション |
---|---|---|---|
1 | createdAt | timestamp | NOT NULL DEFAULT CURRENT_TIMESTAMP |
2 | updatedAt | timestamp | NOT NULL DEFAULT CURRENT_TIMESTAMP |
3 | id | int(11) | NOT NULL PRIMARY KEY AUTO_INCREMENT |
4 | todo | text | NOT NULL |
CREATE TABLE `todo` ( `createdAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `updatedAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `id` int(11) NOT NULL, `todo` text COLLATE utf8mb4_unicode_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ALTER TABLE `todo` ADD PRIMARY KEY (`id`);
続いて、データを先に登録していきます。
INSERT INTO `todo` (`createdAt`, `updatedAt`, `todo`) VALUES (current_timestamp, current_timestamp, 'BeanUtilsのマップコピーを試す'), (current_timestamp, current_timestamp, 'BeanUtilsのResultSetコピーを試す'), (current_timestamp, current_timestamp, 'DBUtilsなどを試す'), (current_timestamp, current_timestamp, 'DBCPでコネクションプールを試す'), (current_timestamp, current_timestamp, 'DBUtilsでQueryRunnerを試す');
問題
jp.pjin.tech.commons.domain.Todo.java
package jp.pjin.tech.commons.domain; import java.sql.Timestamp; import lombok.Data; @Data public class Todo { private Timestamp createdAt; private Timestamp updatedAt; private long id; private String todo; }
jp.pjin.tech.commons.Practice016.java
package jp.pjin.tech.commons; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import jp.pjin.tech.commons.domain.Todo; public class Practice016 { public static void main(String[] args) { Connection con = null; Statement stmt = null; ResultSet rs = null; List<Todo> todos = new ArrayList<>(); try { Class.forName("org.mariadb.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } try { con = DriverManager.getConnection( "jdbc:mariadb://localhost/tech_pjin", "root", ""); } catch (SQLException e) { e.printStackTrace(); } try { stmt = con.createStatement(); rs = stmt.executeQuery("select * from todo"); while (rs.next()) { Todo todo = new Todo(); todo.setCreatedAt(rs.getTimestamp("createdAt")); todo.setUpdatedAt(rs.getTimestamp("updatedAt")); todo.setId(rs.getLong("id")); todo.setTodo(rs.getString("todo")); todos.add(todo); } } catch (SQLException e) { e.printStackTrace(); } finally { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } } if (con != null) { try { con.close(); } catch (SQLException e) { e.printStackTrace(); } } todos.forEach(System.out::println); } }
DBへ接続し、todoテーブルの一覧をTodoクラスに入れて出力しています。
上記のコードをDBCP, DBUtilsを利用して、書き換えてください。
![apache commons](https://tech.pjin.jp/wp-content/uploads/2019/02/apache-commons.png)
Apache Commons Javaプログラム演習問題 第23回
Apache Commons を利用した Java でのプログラム作成問題の23回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありません。 解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正
![apache commons](https://tech.pjin.jp/wp-content/uploads/2019/02/apache-commons.png)
Apache Commons Javaプログラム演習問題 第22回
Apache Commons を利用した Java でのプログラム作成問題の22回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありません。 解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正
![apache commons](https://tech.pjin.jp/wp-content/uploads/2019/02/apache-commons.png)
Apache Commons Javaプログラム演習問題 第21回
Apache Commons を利用した Java でのプログラム作成問題の21回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありません。 解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正
![apache commons](https://tech.pjin.jp/wp-content/uploads/2019/02/apache-commons.png)
Apache Commons Javaプログラム演習問題 第20回
Apache Commons を利用した Java でのプログラム作成問題の20回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありません。 解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正
![apache commons](https://tech.pjin.jp/wp-content/uploads/2019/02/apache-commons.png)
Apache Commons Javaプログラム演習問題 第19回
Apache Commons を利用した Java でのプログラム作成問題の19回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 DB環境の準備は、Apache Commons Javaプログラム演習問題 第16回をご覧ください。 ※この出題形式に関して
![apache commons](https://tech.pjin.jp/wp-content/uploads/2019/02/apache-commons.png)
Apache Commons Javaプログラム演習問題 第18回
Apache Commons を利用した Java でのプログラム作成問題の18回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 DB環境の準備は、Apache Commons Javaプログラム演習問題 第16回をご覧ください。 ※この出題形式に関して
![apache commons](https://tech.pjin.jp/wp-content/uploads/2019/02/apache-commons.png)
Apache Commons Javaプログラム演習問題 第17回
Apache Commons を利用した Java でのプログラム作成問題の17回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 DB環境の準備は、Apache Commons Javaプログラム演習問題 第16回をご覧ください。 ※この出題形式に関して
![apache commons](https://tech.pjin.jp/wp-content/uploads/2019/02/apache-commons.png)
Apache Commons Javaプログラム演習問題 第16回
Apache Commons を利用した Java でのプログラム作成問題の16回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありません。 解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正
![apache commons](https://tech.pjin.jp/wp-content/uploads/2019/02/apache-commons.png)
Apache Commons Javaプログラム演習問題 第12回
Apache Commons を利用した Java でのプログラム作成問題の12回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありません。 解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正
![apache commons](https://tech.pjin.jp/wp-content/uploads/2019/02/apache-commons.png)
Apache Commons Javaプログラム演習問題 第15回
Apache Commons を利用した Java でのプログラム作成問題の15回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありません。 解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正