일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 회귀
- SECS-II
- MYSQL
- regression
- 파이썬
- Computer Science
- spotify
- SWEA
- spring boot
- Spring JPA
- 자바
- 스포티파이
- SECS
- 백준
- SW Expert Academy
- linux
- 프로그래머스
- c
- SECS/GEM
- Baekjoon
- Spring
- C++
- python
- programmers
- 회원가입
- Spotify Api
- CS
- modern c++
- Gem
- java
- Today
- Total
비버놀로지
[JAVA] JDBC의 Statement 와 Prepared Statement 본문
- Statement
- Connection 객체가 생성되면 데이터베이스에 접근이 가능해진다. Connection 객체는 데이터베이스의 연결을 의미하는 것이고, 실제 SQL문을 수행하기 위해서는 Statement 객체를 생성해야 한다. Statement 객체는 이전 단계에서 생성한 Connection 객체(con)로 접근해서 createStatement() 메소드를 호출해서 생성한다.
Statement stmt = con.createStatement();
- Connection 객체에 대한 createStatement() 메소드의 결과값은 Statement 객체 변수에 저장해 둔다. Statement 객체를 얻는 이유는 SQL 표준 쿼리문을 수행하기 위해서이다.
- SQL문 실행
- 위에서 생성한 Statement 객체를 통해 원하는 SQL문을 실행한다.
String query = "Select * from customer";
ResultSet rs= stmt.executeQuery(query);
String query = "UPDATE student SET age=18 WHERE name= '홍길동'";
int recstmt=stmt.executeUpdate(query);
- PreparedStatement
- java.sql.PreparedStatement 클래스는 java.sql.Statement 클래스를 확장한 것으로서 SQL문을 미리 컴파일하여 기존의 java.sql.Statement 객체 보다 더욱 효율적으로 SQL 질의문을 처리하도록 지원한다.
- PreparedStatement 객체
- PreparedStatement 객체는 Connection 객체의 prepareStatement() 메소드를 얻을 수 있다.
- 추가적으로 입력 파라미터의 위치를 저장할 수 있도록 prepareStatement() 메소드에 넣어주는 SQL문에 물음표(?)를 사용할 수 있다.
- PreparedStatement 객체에게 setString(), setInt(), setData() 등의 메소드를 다음과 같이 호출하여 물음표(?)가 있는 위치에 실제 파라미터 값을 넣어줄 수 있다.
- 파라미터 값을 모두 셋팅하면 바로 pstmt 객체에게 excuteQuery() 메소드를 호출하여 ResultSet 객체를 얻어올 수 있다.
PreparedStatemnet psmt = con.prepareStatement(" update patient set age = 30 where name = ? ");
psmt.setString(1, "홍길동");
psmt.executeUpdate();
psmt = con.prepareStatement(" select name, age, gender, phone from patient where name = ? ");
psmt.setString(1, "홍길동");
ResultSet rs = ps.executeQuery();
'LANGUAGE STUDY > JAVA' 카테고리의 다른 글
[JAVA] 자바로 프로그램작성하기(Eclipse) (0) | 2021.01.08 |
---|---|
[JAVA] 자바개발환경 구축하기(zulu 8) (0) | 2021.01.08 |
[JAVA] JDBC의 개념과 구조 (0) | 2020.08.23 |
[JAVA] 쓰레드의 구현과 실행 (0) | 2020.08.23 |
[JAVA] 프로세스와 쓰레드 (0) | 2020.08.23 |