[Java/PostgreSQL]WEBアプリをデータベースに接続する
この記事の内容
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テーブルには下記のサンプルデータが格納されている
SELECT * FROM customer;
id | name | email | password
------+----------+---------------------+----------
0001 | sample1 | [email protected] | password
0002 | sample2 | [email protected] | password
0003 | sample3 | [email protected] | password
0004 | sample4 | [email protected] | password
0005 | sample5 | [email protected] | password
0006 | sample6 | [email protected] | password
0007 | sample7 | [email protected] | password
0008 | sample8 | [email protected] | password
0009 | sample9 | [email protected] | password
0010 | sample10 | [email protected] | password
(10 rows)
Eclipseで開発しているWEBアプリについて
・このWEBアプリは、動的WEBプロジェクト(Dynamic WEB Project)として作成
・このWEBアプリは http://localhost:8080/sample/sample2 にアクセスすることを想定する
コード例
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ファイル を配置する
実行結果
WEBアプリのサーバーを実行し、http://localhost:8080/sample/sample2 にアクセスする
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
データベースの接続に成功しました
ブラウザで画面を確認
データベースに格納したデータがブラウザに表示されていることが確認できた。
今後やりたいこと
データの保存・編集・更新・削除
AWS上に置いたDBとの連携
感想
Railsではコマンド数行書いて実行すれば自動的に設定できるDB.
Javaでは一つ一つ自分で設定しなければならないのが面倒。
Author And Source
この問題について([Java/PostgreSQL]WEBアプリをデータベースに接続する), 我々は、より多くの情報をここで見つけました https://qiita.com/tanakadaichi_1989/items/c2c053670bae41cf2d3f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .