DB연결 

 

Class.forName("org.mariadb.jdbc.Driver"); // MariaDB JDBC 드라이버 로드

Connection conn = DriverManager.getConnection("jdbc:mariadb://localhost:3306/mydatabase", "username", "password");
// 데이터베이스에 연결

String sql = "SELECT * FROM mytable WHERE id = ?";
PreparedStatement pstm = conn.prepareStatement(sql);
// PrepareStatement 객체를 사용하여 SQL 문을 준비합니다. ?는 매개 변수를 나타냅니다.

pstm.setInt(1, 10); // 첫 번째 매개 변수에 값 10을 바인딩합니다.

ResultSet rs = pstm.executeQuery();
// SQL 문을 실행하여 결과 집합을 가져옵니다.

while (rs.next()) {
    int id = rs.getInt("id");
    String name = rs.getString("name");
    // 결과 집합의 열 값을 가져옵니다.
    // 열 이름을 사용하여 열 값을 가져올 수 있습니다.
    
    System.out.println("ID: " + id + ", Name: " + name);
}

rs.close(); // ResultSet 객체를 닫습니다.
pstm.close(); // PreparedStatement 객체를 닫습니다.
conn.close(); // Connection 객체를 닫습니다.

 

 

Statement와 Prepared Statement 차이점 ( SQL문을 실행할 수 있는 객체 ) 

 

 

Statement

SQL 문을 실행할 때마다 전체 SQL 문을 데이터베이스로 보내고 컴파일합니다. 실행 시마다 SQL 문이 파싱되고 최적화

            // Statement를 사용한 INSERT 쿼리 실행
            Statement stmt = conn.createStatement();
            String insertQuery = "INSERT INTO mytable (id, name) VALUES (1, 'John')";
            int rowsAffected = stmt.executeUpdate(insertQuery);

 

 

Prepared Statemen

SQL 문을 한 번 준비(prepare)한 후, 나중에 매개 변수와 함께 반복해서 실행할 수 있습니다. SQL 문이 데이터베이스로 보내지고 컴파일되는 단계를 한 번만 수행

1, 2 쿼리문 순서대로 입력

 

            // PreparedStatement를 사용한 INSERT 쿼리 실행
            String insertQuery = "INSERT INTO mytable (id, name) VALUES (?, ?)";
            PreparedStatement pstmt = conn.prepareStatement(insertQuery);
            
            pstmt.setInt(1, 1);
            pstmt.setString(2, "John");
            
            int rowsAffected = pstmt.executeUpdate();

 

 

 

executeQuery()executeUpdate() 

JDBC에서 사용되는 두 가지 메서드

데이터베이스와 상호작용할 때 주로 사용

 

 

executeQuery()

SELECT 문을 실행하여 결과 집합(ResultSet)을 반환하는 데 사용

SELECT 문은 데이터베이스에서 데이터를 조회하는 데 사용되며, 결과 집합에는 조회된 데이터가 포함된다.

반환 값: ResultSet 객체. 결과 집합을 포함하고 있으며, 조회한 데이터에 접근하기 위해 사용

String sql = "SELECT * FROM users";
Statement stmt = connection.createStatement();
ResultSet rs = statement.executeQuery(sql);
while (rs.next()) {
    // 결과 집합에서 데이터를 읽고 처리하는 로직
}

 

 

executeUpdate() 

INSERT, UPDATE, DELETE 등과 같은 데이터 변경 작업을 실행하는 데 사용

이러한 작업은 데이터베이스의 테이블에 행을 삽입, 업데이트, 삭제하는 데 사용

반환 값: int 타입. 영향을 받은 행의 수를 나타내며, INSERT, UPDATE, DELETE 문이 실행된 후 변경된 행의 수가 반환됨

String sql = "INSERT INTO users (name, age) VALUES ('John', 25)";
Statement stmt = connection.createStatement();
int affectedRows = statement.executeUpdate(sql);
System.out.println("영향을 받은 행의 수: " + affectedRows);

 

+ Recent posts