Posted at

[Mac/Java/Eclipse/PostgreSQL]Javaアプリとデータベースを接続する


この記事で書くこと

・MacにインストールしたEclipseでJavaアプリを作成の際に、Javaアプリとデータベースを接続する方法


この記事を書いた人の特徴

・RailsでWEBアプリを作成した経験あり

・Javaで1からWEBアプリを作成した経験はなし

Railsアプリ作成時には、例えば


RailsでのDB設定コマンド

rails model User name:String email:String

rails:db mingrate

を実行すると自動的に接続ができる。

それとは対照的に、Javaアプリではひとつひとつ自ら設定する必要がある。

今回、その設定を勉強するためにこの記事を書いた。


開発環境

備考

PC
MacBook Air

OS
MacOS Mojave
Version: 10.14.4

言語
Java
Version: 12.0.1

IDE
Eclipse
Eclipse IDE for Enterprise Java Developers. Version: 2019-03 (4.11.0)

WEBサーバー
Apache Tomcat
Version: 8

DB
PostgreSQL
Version: 11.2

DB管理ツール
pgAdmin
Version: 4.5

ブラウザ
Chrome
バージョン: 73.0.3683.103

※本当はAWSのRDSに置いたDBに接続したかったけど、上手くいかなかったため今回はローカルのDBに接続しました

※Eclipseの言語は英語です。


前提条件

データベース「sample」に、「User」テーブルを用意

「User」テーブル内に下記のデータが格納されている


SQL

SELECT * FROM USER;


pgAdmin上でのSQL実行結果

スクリーンショット 2019-04-20 21.22.17.png


ファイルの配置

動的WEBプロジェクト「sample」内に、データベースの接続処理を書く「Sampleapp6.java」を配置

スクリーンショット 2019-04-20 21.54.29.png


コード例


Sampleapp6.java

package jp.co.sample;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class Sampleapp6 {

public static void main(String[] args) throws Exception {

String url = "jdbc:postgresql://localhost:5432/sample";
String user = "sampleデータベースのユーザー";
String password = "samleデータベースのパスワード";

// データベースに接続
try(Connection conn = DriverManager.getConnection(url,user,password)) {

//SELECT文を準備
String sql = "SELECT * FROM CUSTOMER";
PreparedStatement pStmt = conn.prepareStatement(sql);

ResultSet rs = pStmt.executeQuery();

//結果を表示
while (rs.next()) {
String id = rs.getString("ID");
String name = rs.getString("NAME");
String email = rs.getString("EMAIL");

System.out.println(id + " " + name + " " + email);
}

} catch (SQLException e) {
e.printStackTrace();
}
};



ポイント

JDBCドライバを適用する

JDBCドライバをダウンロードし、保存(今回はデスクトップに保存)

https://jdbc.postgresql.org/download.html

スクリーンショット 2019-04-20 22.10.02.png

「sample」プロジェクトを右クリック → 「Properties」を選択

スクリーンショット 2019-04-20 21.58.56.png

「Java Build Path」を選択 → 「Modulepath」にデスクトップに保存した外部ビルドパスを適用

スクリーンショット 2019-04-20 22.02.43.png


処理実行結果

下記画像はEclipseのコンソールです

データベースからデータを取得していることが確認できました。

D4mCbABUYAAPC_e.png


感想

Railsではデータベースの接続は、コマンド数行を実行すればいい。

Javaは全部自分で設定しなければならない。

DBの接続方法をネットで調査したが、どの情報が正しいかわからず独学では難しいと感じた。


今後すること

Javaアプリに、データの保存・編集・更新・削除処理を実装する方法


参考文献

国本大悟「スッキリわかるサーブレット&JSP入門 第2版」,株式会社インプレス,2019/03/21初版