Notice
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 2024겨울방학 코딩부트캠프
- 도서관 수업
- 뚜루뚜루
- 2023 ICT R&D 주간
- js
- 핑퐁로봇
- html
- 드론
- transaction
- 2024우먼테크위크
- 초등학교 코딩수업
- 콜백함수
- 이것이 자바다
- 초등학생 코딩수업
- 은평구립도서관
- Cos Pro
- 알티노
- 스마트리움
- Java
- 코딩수업
- jsp
- 서울시여성가족재단
- Spring Security
- spring
- 자바
- 자율주행자동차
- spring boot
- CSS
- 초등학생 겨울방학 놀이
- 코딩부트캠프
Archives
- Today
- Total
블로그
JDBC 본문
JDBC
- 자바에서 데이터베이스와 관련된 작업을 처리할 때 사용하는 API
- 한번 익혀두면 모든 DBMS에 대해서 동일한 방식으로 데이터베이스 작업을 처리할 수 있다.
@Controller
@RequestMapping("/main23/sub2")
public class Controller23{
public void method2(Model model) throws Exception {
var list = new ArrayList<String>();
String sql="SELECT CustomerName FROM Customers";
// 1. db 연결
String url = "jdbc:mariadb://localhost:3306/w3schools";
String user = "root";
String password = "1234";
Connection con = DriverManager.getConnection(url, user, password);
// 2. 실행 준비
Statement statement = con.createStatement();
// 3. 쿼리 실행
ResultSet resultSet = statement.executeQuery(sql);
// 4. 결과 가공
try(resultSet; statement; con) {
while (resultSet.next()) {
String name = resultSet.getString(1);
list.add(name);
}
}
model.addAttribute("nameList",list);
// (5. 자원 닫기 - try-with-resources)
// 6. 모델에 attribute로 결과 넣기
// 7. view로 forward
}
}
데이터를 가져오는 SELECT 문일 경우에는 executeQuery() 메소드를 호출해야 한다.
executeQuery() 메소드는 가져온 데이터를 ResultSet에 저장하고 리턴한다.
ResultSet rs = pstmt.executeQuery();
executeQuery() 메소드로 SELECT 문을 실행해서 ResultSet을 얻는다.
✅ResultSet
ResultSet의 특징은 커서가 있는 행의 데이터만 읽을 수 있다는 것이다. 여기서 커서는 행을 가리키는 포인터를 말한다.
조건에 맞는 행은 n개이므로 while문을 이용해서 next()메소드가 false를 리턴할 때까지 반복해서 데이터 행을 읽는다.
ResultSet을 getString() 메소드를 사용하였다.
✅ ResultSet의 getString 메소드
이 메소드는 ResultSet 객체의 현재 행에서 지정된 열의 값을 문자열 형태로 가져옵니다.
- columnIndex: 열의 인덱스를 나타냅니다. 첫 번째 열은 1로 시작합니다.
- 반환 값: 지정된 열의 값이 문자열로 반환됩니다. 값이 SQL NULL인 경우 null이 반환됩니다.
- 예외: columnIndex가 유효하지 않은 경우 또는 데이터베이스 액세스 오류가 발생한 경우 SQLException이 발생합니다. 또한 이 메소드가 닫힌 결과 집합에 대해 호출된 경우에도 SQLException이 발생합니다.
즉, 이 메소드는 ResultSet 객체에서 지정된 열의 값을 문자열로 가져옵니다. 그러나 유효하지 않은 columnIndex를 제공하거나 결과 집합이 이미 닫혔을 경우에는 SQLException이 발생합니다.
※ column의 값이 숫자일 경우, getInt() 혹은 getDouble()을 사용해도 된다.
getString()이 엄격하지 않아서, 숫자도 getString()으로 모두 사용할 수 있다.
'개발자 준비과정 > Spring, SpringBoot, JSP' 카테고리의 다른 글
Spring MVC, JDBC를 사용하여 페이징하기 (0) | 2024.04.19 |
---|---|
<c:set> 태그 (0) | 2024.04.18 |
4월11일 수업내용 jstl, lombok, ModelAttribute (0) | 2024.04.11 |
4월9일 spring,jsp 수업 내용 (0) | 2024.04.09 |
4월8일 수업내용 (0) | 2024.04.08 |