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);
'프로젝트 기반 자바(JAVA) 응용 SW개발자 취업과정 > 추가 복습' 카테고리의 다른 글
스프링_maven_설정 (0) | 2023.07.18 |
---|---|
web.XML (0) | 2023.07.13 |
필드, 생성자, 메소드 정리 (2) | 2023.06.06 |
싱글톤 3 ( java ) 이름, 국영수 점수 입력=>총점, 평균, 최고점수 (0) | 2023.06.02 |
싱글톤 2 ( JSP 환경 ) 이름, 국영수 점수 입력=>총점, 평균, 최고점수 (0) | 2023.06.01 |