apache commons

Apache Commons Javaプログラム演習問題 第16回


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を利用して、書き換えてください。

解答例1

解答例2
apache commons

Apache Commons Javaプログラム演習問題 第19回

Apache Commons を利用した Java でのプログラム作成問題の19回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 DB環境の準備は、Apache Common […]
コメントなし
apache commons

Apache Commons Javaプログラム演習問題 第18回

Apache Commons を利用した Java でのプログラム作成問題の18回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 DB環境の準備は、Apache Common […]
コメントなし
apache commons

Apache Commons Javaプログラム演習問題 第17回

Apache Commons を利用した Java でのプログラム作成問題の17回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 DB環境の準備は、Apache Common […]
コメントなし
apache commons

Apache Commons Javaプログラム演習問題 第16回

Apache Commons を利用した Java でのプログラム作成問題の16回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありま […]
コメントなし
apache commons

Apache Commons Javaプログラム演習問題 第12回

Apache Commons を利用した Java でのプログラム作成問題の12回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありま […]
コメントなし
apache commons

Apache Commons Javaプログラム演習問題 第15回

Apache Commons を利用した Java でのプログラム作成問題の15回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありま […]
コメントなし
apache commons

Apache Commons Javaプログラム演習問題 第14回

Apache Commons を利用した Java でのプログラム作成問題の14回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありま […]
コメントなし
apache commons

Apache Commons Javaプログラム演習問題 第13回

Apache Commons を利用した Java でのプログラム作成問題の13回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありま […]
コメントなし
apache commons

Apache Commons Javaプログラム演習問題 第11回

Apache Commons を利用した Java でのプログラム作成問題の11回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありま […]
コメントなし
apache commons

Apache Commons Javaプログラム演習問題 第10回

Apache Commons を利用した Java でのプログラム作成問題の10回目となります。 環境を構築していない場合は、概要を読み、環境を構築してから実施してください。 ※この出題形式に関しては答えは1つではありま […]
コメントなし
  • このエントリーをはてなブックマークに追加

PAGE TOP