LoginSignup
2
0

More than 3 years have passed since last update.

[Java/PostgreSQL]WEBアプリをデータベースに接続する

Last updated at Posted at 2019-05-12

この記事の内容

Eclipseで開発しているWEBアプリとデータベースを接続する方法

この記事を書いた理由

忘れた時に確認するため

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

2011年 国立大教育学部卒(当時、プログラミングに全く興味なし)
大学卒業後、伊勢丹・リクルート等で勤務。
2016年頃〜 独学でプログラミングの勉強をスタート
(Railsでアプリを開発できるようになる)
2018年〜 SEとして勤務

RailsではDBの設定はコマンドを入力すれば自動的に処理できた。
Javaでは、その設定を自分でする必要があるのでその勉強を兼ねてこの記事を書いた。

開発環境

PC: Mac
OS: MacOS Mojave
言語: Java
IDE: Eclipse
DB: PostgreSQL
DB管理ツール: pgAdmin

前提条件

接続先のデータベースについて

・接続先のデータベースは、ローカル環境(ポート:5432)である
・sampleデータベースにはcustomerテーブルが存在する
・customerテーブルには下記のサンプルデータが格納されている

SQL
SELECT * FROM customer;
実行結果
  id  |   name   |        email        | password 
------+----------+---------------------+----------
 0001 | sample1  | sample1@sample.com  | password
 0002 | sample2  | sample2@sample.com  | password
 0003 | sample3  | sample3@sample.com  | password
 0004 | sample4  | sample4@sample.com  | password
 0005 | sample5  | sample5@sample.com  | password
 0006 | sample6  | sample6@sample.com  | password
 0007 | sample7  | sample7@sample.com  | password
 0008 | sample8  | sample8@sample.com  | password
 0009 | sample9  | sample9@sample.com  | password
 0010 | sample10 | sample10@sample.com | password
(10 rows)

Eclipseで開発しているWEBアプリについて

・このWEBアプリは、動的WEBプロジェクト(Dynamic WEB Project)として作成
・このWEBアプリは http://localhost:8080/sample/sample2 にアクセスすることを想定する

コード例

Sampleapp2.java
package jp.co.sample;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;

public class Sampleapp2 extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<style>table,th,td,tr{border: 1px solid black};</style>");
        out.println("<body>");
        out.println("<h1>Sampleapp by Java Servlet</h1>");
        out.println("</body>");
        out.println("</html>");

        String url = "jdbc:postgresql://localhost:5432/sample";
        String user = "USERNAME";
        String password = "PASSWORD";

        try{
            Class.forName("org.postgresql.Driver");
            System.out.println("データベースの接続に成功しました");
        } catch(Exception e) {
            e.printStackTrace();
        }


        try {
            Connection conn = DriverManager.getConnection(url, user, password);
            conn.setAutoCommit(false);
            Statement stmt = conn.createStatement();
            String sql = "SELECT * FROM customer";
            ResultSet rset = stmt.executeQuery(sql);

            out.println("<table>");
            out.println("<tr><th>ID</th><th>UserName</th><th>Email</th></tr>");

            while(rset.next()) {
                out.println("<tr><td>" + rset.getString("id") + "</td><td>" + rset.getString("name") + "</td><td>" + rset.getString("email") + "</td></tr>");
            }

            out.println("</table>");

        } catch (Exception e) {
            System.out.println("Exception: " + e.getMessage());
        }


    }
}

ポイント

WEB-INF/lib ディレクトリに .jarファイル を配置する
スクリーンショット 2019-05-12 16.50.05.png

実行結果

WEBアプリのサーバーを実行し、http://localhost:8080/sample/sample2 にアクセスする

Eclipseのコンソール
5月 12, 2019 4:26:33 午後 org.apache.catalina.startup.VersionLoggerListener log
情報: Server version name:   Apache Tomcat/9.0.14

(中略)

5月 12, 2019 4:26:35 午後 org.apache.catalina.startup.Catalina start
情報: サーバーの起動 [1,215]ms
データベースの接続に成功しました

ブラウザで画面を確認
スクリーンショット 2019-05-12 16.52.01.png
データベースに格納したデータがブラウザに表示されていることが確認できた。

今後やりたいこと

データの保存・編集・更新・削除
AWS上に置いたDBとの連携

感想

Railsではコマンド数行書いて実行すれば自動的に設定できるDB.
Javaでは一つ一つ自分で設定しなければならないのが面倒。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0