PostgreSQL - JAVA Interface: A Beginner's Guide
안녕하세요, 미래의 데이터베이스 마법사 여러분! PostgreSQL과 Java의 세계로의 흥미로운 여정을 안내해 드리게 되어 매우 기쁩니다. 컴퓨터 과학을 가르쳐온 지 오래된 저로서는 여러분과 지식과 경험을 나누고 싶어 마음이 뛰어요. 시작해 보겠습니다!
설치
코딩을 시작하기 전에 우리의 환경을 설정해야 해요. 걱정 마세요, IKEA 가구 조립하는 것보다 쉬워요!
- 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 명령어를 실행합니다. - '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