PostgreSQL - JAVA Interface: A Beginner's Guide
こんにちは、未来のデータベース魔术師たち!私は、PostgreSQLとJavaの世界にあなた们を案内するのをとても楽しみにしています。コンピュータサイエンスを教えてきた経験を活かして、私の知識と経験をあなた们と共有できることをとても楽しみにしています。さあ、始めましょう!
インストール
コードを書く前に、環境を設定する必要があります。心配しないでください。イケアの家具を組むよりも簡単です!
- PostgreSQLをインストール:公式ウェブサイトからPostgreSQLをダウンロードしてインストールします。
- Java Development Kit (JDK)をインストール:Oracleのウェブサイトから最新バージョンをダウンロードします。
- JDBCドライバーをダウンロード:JavaとPostgreSQLを接続するために必要です。PostgreSQLのウェブサイトで見つけることができます。
これらをインストールしたら、データベースの冒険の始まりです!
データベースに接続
さあ、PostgreSQLデータベースに接続するための最初のコードを書いてみましょう。データベースに電話をかけるようなものです!
import java.sql.Connection;
import java.sql.DriverManager;
public class DatabaseConnection {
public static void main(String[] args) {
String url = "jdbc:postgresql://localhost:5432/mydb";
String user = "username";
String password = "password";
try {
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println("PostgreSQLサーバーに接続しました。");
} catch (Exception e) {
e.printStackTrace();
}
}
}
以下に解説します:
- 必要なJava SQLクラスをインポートします。
- データベースのURL、ユーザー名、パスワードを指定します。
-
DriverManager.getConnection()
を使って接続を確立します。 - 成功した場合、成功メッセージを表示します。失敗した場合、エラーをキャッチして表示します。
テーブルの作成
素晴らしい!接続ができました。さあ、テーブルを作成しましょう。新しいスプレッドシートを設定するようなものです。
import java.sql.*;
public class CreateTable {
public static void main(String[] args) {
String url = "jdbc:postgresql://localhost:5432/mydb";
String user = "username";
String password = "password";
try (Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement()) {
String sql = "CREATE TABLE students " +
"(id SERIAL PRIMARY KEY, " +
" name VARCHAR(50), " +
" age INTEGER, " +
" grade CHAR(1))";
stmt.executeUpdate(sql);
System.out.println("テーブルを作成しました。");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
以下に解説します:
-
Statement
オブジェクトを作成してSQLコマンドを実行します。 - SQLコマンドを定義して、'students'という名前のテーブルを作成します。
-
executeUpdate()
を使ってSQLコマンドを実行します。
INSERT操作
テーブルができたので、データを追加してみましょう。新しいスプレッドシートにデータを入力するようなものです!
import java.sql.*;
public class InsertData {
public static void main(String[] args) {
String url = "jdbc:postgresql://localhost:5432/mydb";
String user = "username";
String password = "password";
try (Connection conn = DriverManager.getConnection(url, user, password);
PreparedStatement pstmt = conn.prepareStatement(
"INSERT INTO students(name, age, grade) VALUES(?, ?, ?)")) {
pstmt.setString(1, "Alice");
pstmt.setInt(2, 20);
pstmt.setString(3, "A");
pstmt.executeUpdate();
System.out.println("データを追加しました。");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
以下に解説します:
-
PreparedStatement
を使ってセキュリティとパフォーマンスを向上させます。 -
setString()
とsetInt()
メソッドを使って値を設定します。 -
executeUpdate()
を使ってデータを追加します。
SELECT操作
データを取得する時がきました!スプレッドシートに記入した内容を見せるようなものです。
import java.sql.*;
public class SelectData {
public static void main(String[] args) {
String url = "jdbc:postgresql://localhost:5432/mydb";
String user = "username";
String password = "password";
try (Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM students")) {
while (rs.next()) {
System.out.println("ID: " + rs.getInt("id"));
System.out.println("Name: " + rs.getString("name"));
System.out.println("Age: " + rs.getInt("age"));
System.out.println("Grade: " + rs.getString("grade"));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
以下に解説します:
-
executeQuery()
を使ってSELECT文を実行します。 -
ResultSet
がクエリの結果を含みます。 -
rs.next()
を使って結果をループで取得します。 -
getInt()
やgetString()
メソッドを使ってデータを取得します。
UPDATE操作
データを変更する時があります。スプレッドシートのセルを編集するようなものです。
import java.sql.*;
public class UpdateData {
public static void main(String[] args) {
String url = "jdbc:postgresql://localhost:5432/mydb";
String user = "username";
String password = "password";
try (Connection conn = DriverManager.getConnection(url, user, password);
PreparedStatement pstmt = conn.prepareStatement(
"UPDATE students SET grade = ? WHERE name = ?")) {
pstmt.setString(1, "B");
pstmt.setString(2, "Alice");
int rowsUpdated = pstmt.executeUpdate();
System.out.println(rowsUpdated + " 行を更新しました。");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
以下に解説します:
- プレースホルダーを使ったUPDATE文を準備します。
- 新しい成績と更新する名前を設定します。
-
executeUpdate()
を使って更新を実行し、影響を受けた行数を取得します。
DELETE操作
データを削除する方法を学びましょう。スプレッドシートの行を消去するようなものです。
import java.sql.*;
public class DeleteData {
public static void main(String[] args) {
String url = "jdbc:postgresql://localhost:5432/mydb";
String user = "username";
String password = "password";
try (Connection conn = DriverManager.getConnection(url, user, password);
PreparedStatement pstmt = conn.prepareStatement(
"DELETE FROM students WHERE name = ?")) {
pstmt.setString(1, "Alice");
int rowsDeleted = pstmt.executeUpdate();
System.out.println(rowsDeleted + " 行を削除しました。");
} catch (SQLException e) {
e.printStackTrace();
}
}
}
以下に解説します:
- プレースホルダーを使ったDELETE文を準備します。
- 削除する名前を設定します。
-
executeUpdate()
を使って削除を実行し、影響を受けた行数を取得します。
共通データベースメソッド
以下は、私たちの例で使用した一般的なメソッドの表です:
メソッド | 説明 |
---|---|
DriverManager.getConnection() |
データベースに接続します |
Connection.createStatement() |
SQLを実行するためのStatement オブジェクトを作成します |
Connection.prepareStatement() |
パラメータ化されたSQLを実行するためのPreparedStatement を作成します |
Statement.executeUpdate() |
データを変更するSQLを実行します |
Statement.executeQuery() |
クエリを実行し、ResultSet を返します |
ResultSet.next() |
ResultSet の次の行に移動します |
ResultSet.getXXX() (例:getString , getInt ) |
現在の行の列値を取得します |
それで、PostgreSQLとJavaの世界への初歩を踏み出しました!実践を重ねることで完璧になります。これらの概念を続けて試してみてください。間もなく、複雑なデータベースアプリケーションをプロのように構築できるようになるでしょう!
Credits: Image by storyset