일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- react
- spring-boot
- 노드에 리액트 추가하기
- Python
- 자바스크립트
- 리액트
- 웹 게임을 만들며 배우는 리액트
- node.js 설치
- 모던자바스크립트
- react오류
- node.js로 로그인하기
- 거북이 대포 게임
- ReactDOM.render is no longer supported in React 18. Use createRoot instead
- googleColaboratory
- 계산맞추기 게임
- 모두의 파이썬
- Spring-Framework
- JS 개념
- You are importing createRoot from "react-dom" which is not supported. You should instead import it from "react-dom/client"
- 타자 게임 만들기
- Colaboratory 글자 깨짐
- props
- DB Browser
- intllij 내 Bean을 찾지 못해서 발생하는 오류
- Concurrently
- vs code 내 node
- intellij
- 인프런
- Do it 자바스크립트 + 제이쿼리 입문
- 따라하며 배우는 노드 리액트 기본 강의
- Today
- Total
프로그래밍 삽질 중
JDBC 설명 및 예시 2) 본문
※ executeUpdate() 메소드 : DB에 변경을 가하는 조작
※ 레코드 추가
stmt.executeUpdate("insert into Book values( "+17+", \'AAAA\', \'BBBB\', "+1000+")");
-SQL문 수행으로 영향을 받은 행의 개수 반환
※ 데이터 수정 및 삭제는 인자의 String 내용을 포맷에 맞게 변경할 것
데이터 수정
stmt.executeUpdate("update book set bookname = 'CCCC' where bookid=17")
데이터 삭제
stmt.executeUpdate("delete from book where name='CCC'");
※ executeQuery(String sql) : 주어진 SQL문을 실행하고 결과를 ResultSet 객체에 반환
※ PreparedStatement
- SQL문 실행 시 필요한 인자들을 동적으로 설정
- 실행이 빠르고 가독성이 좋으며 코드 재사용 가능
EX) String sql = "insert into Book values(?, ?, ?)"; → ? 부분에 값을 넣는 것
PreparedStatement pstmt = conn.prepareStatement("select * from Book");
ResultSet rs = pstmt.executeQuery();
PreparedStatement문(예시) | Statement문(예시) |
PreparedStatement pstmt = conn.prepareStatement("select * from Book"); ResultSet rs = pstmt |
Statement stmt = conn.createStatement(); stmt.executeQuery("select * from book"); |
※ PreparedStatement 주요 메소드
1) void setInt(int index, int value) : 인덱스 위치에 정수값 지정
2) void setString(int index, String value) : 인덱스 위치에 문자열 지정
3) int executeUpdate : SQL문 실행
4) ResultSet executeQuery() : SELECT문을 실행하고 ResultSet 객체 반환
※ ResultSetMetaData
- 메타데이터 : 데이터에 대한 데이터
※ ResultSetMetaData 메소드
1) int getColumnCount() : ResultSet 객체의 컬럼의 수 반환
2) String getColumnName(int index) : 컬럼 인덱스에 해당하는 이름 반환
3) String getColumnTypeName(int index) : 인덱스에 해당하는 컬럼 타입 반환
※ BLOB(Binary Large Object)
- 이미지와 같은 대용량 데이터를 위한 타입
1) long length : BLOB의 길이 반환
2) byte[] getBytes(long start, long length) : BLOB에서 주어진 범위 내의 데이터를 반환
3) InputStream getBinaryStream() : BLOB에 저장된 데이터를 읽어서 Stream으로 반환
4) OutputStream setBinaryStream(long start) : BLOB에 저장될 OutputStream 반환
※ 트랜잭션 관리 및 메소드
1) void setAutoCommit(boolean status) : 트랜잭션마다 커밋 완료, 기본값 true
2) void commit() : 작업 내용 커밋 실행
3) void rollback() : 작업 내용 철회
[SQL MUSIC 데이터]
[예제문제1] -PreparedStatement : 2, IU, bbb, 30 값 넣기
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
package May_Four_05_Review;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class PreparedStatementEx_1 {
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:xe", "scott", "tiger");
//넣고자 하는 값 입력
String sql = "Insert into music values(?, ?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 2);
pstmt.setString(2, "IU");
pstmt.setString(3, "bbb");
pstmt.setInt(4, 30);
pstmt.executeQuery();
//넣고자 하는 값 값 출력위함
pstmt = conn.prepareStatement("Select * from music where mnumber = ?");
pstmt.setInt(1,2);
ResultSet rs = pstmt.executeQuery();
while(rs.next()) {
System.out.printf("%s\t%s\t%s\t%s\t\n",
rs.getString(1), //mnumber
rs.getString(2), //singer
rs.getString(3), //agency
rs.getString(4)); //sell
}
} catch(ClassNotFoundException e) {
System.out.println("JDBC 드라이버 로드 에러");
} catch (SQLException e) {
System.out.println("DB 연결 오류");
}
}
}
|
cs |
[예제 1 결과]
[예제 2] - ResultSetMetaData
결과값 :
컬럼의 개수 : 4
2번째 컬럼 이름 : BOOKNAME
2번째 컬럼 타입 : VARCHAR2
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
32
33
34
35
36
37
38
39
40
41
42
43
|
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
public class ResultSetMetaDataEx {
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:xe", "scott", "tiger");
String sql = "Select * from book where bookname = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "축구의 역사");
ResultSet rs = pstmt.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
while(rs.next()) {
System.out.println("컬럼의 개수 : " + rsmd.getColumnCount());
System.out.println("2번째 컬럼 이름 : " + rsmd.getColumnName(2));
System.out.println("2번째 컬럼 타입 : " + rsmd.getColumnTypeName(2));
}
} catch(ClassNotFoundException e) {
System.out.println("JDBC 드라이버 로드 에러");
} catch (SQLException e) {
System.out.println("DB 연결 오류");
}
}
}
|
cs |
'과거 프로그래밍 자료들 > SQL(Oracle)' 카테고리의 다른 글
기본키&외래키 설명 (0) | 2021.05.18 |
---|---|
SQL 예제문제 (2) (0) | 2021.03.26 |
JDBC 설명 및 예제 1) (0) | 2021.03.25 |
SQL 커서 설명 및 예제 (0) | 2021.03.24 |
SQL PL/SQL 설명 및 예제 (0) | 2021.03.23 |