PostgreSQL - JAVA Interface: A Beginner's Guide

안녕하세요, 미래의 데이터베이스 마법사 여러분! PostgreSQL과 Java의 세계로의 흥미로운 여정을 안내해 드리게 되어 매우 기쁩니다. 컴퓨터 과학을 가르쳐온 지 오래된 저로서는 여러분과 지식과 경험을 나누고 싶어 마음이 뛰어요. 시작해 보겠습니다!

PostgreSQL - Java

설치

코딩을 시작하기 전에 우리의 환경을 설정해야 해요. 걱정 마세요, IKEA 가구 조립하는 것보다 쉬워요!

  1. PostgreSQL 설치: 공식 웹사이트에서 PostgreSQL을 다운로드하고 설치하세요.
  2. Java Development Kit (JDK) 설치: Oracle 웹사이트에서最新 버전을 가져와 설치하세요.
  3. 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 명령어를 실행합니다.
  • 'students'라는 이름의 테이블을 생성하는 SQL 명령어를 정의합니다.
  • executeUpdate()를 사용하여 SQL 명령어를 실행합니다.

데이터 삽입

이제 테이블이 생겼으니, 데이터를 추가해 보겠습니다. 새로운 스프레드시트에 데이터를 채우는 것과 같아요!

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()를 사용하여 데이터를 삽입합니다.

데이터 검색

이제 데이터를 검색해 보겠습니다. 스프레드시트에 입력한 것을 보여달라고 요청하는 것과 같아요.

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("이름: " + rs.getString("name"));
System.out.println("나이: " + rs.getInt("age"));
System.out.println("성적: " + rs.getString("grade"));
}

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

이 작업의 내용은 다음과 같습니다:

  • executeQuery()를 사용하여 SELECT 문을 실행합니다.
  • ResultSet을 통해 쿼리 결과를 얻습니다.
  • rs.next()을 사용하여 결과를 반복합니다.
  • getInt()getString() 메서드를 사용하여 데이터를检索합니다.

데이터 업데이트

때로는 데이터를 변경해야 할 수 있습니다. 스프레드시트의 셀을 수정하는 것과 같아요.

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();
}
}
}

이 작업의 내용은 다음과 같습니다:

  • 업데이트할 SQL 문을 준비합니다.
  • 새로운 성적과 학생 이름을 설정합니다.
  • 업데이트를 실행하고 영향을 받은 행의 수를 얻습니다.

데이터 삭제

마지막으로 데이터를 삭제하는 방법을 배워보겠습니다. 스프레드시트에서 행을 지우는 것과 같아요.

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();
}
}
}

이 작업의 내용은 다음과 같습니다:

  • 삭제할 SQL 문을 준비합니다.
  • 학생 이름을 설정합니다.
  • 삭제를 실행하고 영향을 받은 행의 수를 얻습니다.

일반 데이터베이스 메서드

다음은 우리가 예제에서 사용한 일반 메서드 표입니다:

메서드 설명
DriverManager.getConnection() 데이터베이스에 연결을 설정합니다
Connection.createStatement() SQL 명령어를 실행할 수 있는 Statement 객체를 만듭니다
Connection.prepareStatement() 매개변수화된 SQL 명령어를 실행할 수 있는 PreparedStatement 객체를 만듭니다
Statement.executeUpdate() 데이터를 수정하는 SQL 명령어를 실행합니다
Statement.executeQuery() 쿼리를 실행하고 ResultSet를 반환합니다
ResultSet.next() 커서를 다음 행으로 이동합니다
ResultSet.getXXX() (예: getString, getInt) 현재 행의 열 값을检索합니다

이렇게 하면 PostgreSQL과 Java의 세계로의 첫 걸음을 내셔드렸습니다. 연습이 완벽을 만드는 법을 기억하세요, 그러므로 이 개념들을 계속 실험해 보세요. 얼마 지나지 않아 복잡한 데이터베이스 애플리케이션을 프로처럼 만드는 데 능숙해질 거예요!

Credits: Image by storyset