12장. JDBC 프로그래밍.

Slides:



Advertisements
Similar presentations
2008 년 11 월 20 일 실습.  실험제목 ◦ 데이터베이스 커넥션 풀  목표 ◦ 데이터베이스 커넥션 풀의 사용.
Advertisements

목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
JDBC.
PARK SUNGJIN Oracle 설치 PARK SUNGJIN
DB 프로그래밍 학기.
DB 프로그래밍 학기.
You YOungseok 데이터베이스 테이블 및 인덱스 You YOungseok.
Power Java 제3장 이클립스 사용하기.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
최윤정 Java 프로그래밍 클래스 상속 최윤정
제 10 장 JDBC 프로그래밍 학기 인터넷비즈니스과 강 환수 교수.
소프트웨어시스템설계(6주) 데이터베이스 연동
주)INVENTORNICS 노창배 소프트웨어 김 경 순
JSP Programming with a Workbook
어서와 Java는 처음이지! 제19장 데이터베이스 프로그래밍.
명품 JAVA Programming 제 17 장 JDBC 프로그래밍.
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
JDBC 프로그래밍 이수지 이동주 1.
6장 Mysql 명령어 한빛미디어(주).
MySQL 및 Workbench 설치 데이터 베이스.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
데이터베이스 와 JDBC 1.데이터베이스와 데이터베이스 관리 시스템은? 2.데이터베이스 장점?
11장. 데이터베이스 서버 구축과 운영.
14장 질의응답 한빛미디어(주).
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
5장 Mysql 데이터베이스 한빛미디어(주).
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
07 그룹 함수 그룹 함수의 개념 그룹 함수의 종류 데이터 그룹 생성 HAVING 절.
4-1장. MySQL 제13장.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
1. C++ 시작하기.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
모바일 자바 프로그래밍 JDBC / WAP Ps lab 오민경.
18강. 데이터 베이스 - II JDBC 살펴보기 Statement객체 살펴보기 Lecturer Kim Myoung-Ho
17강. 데이터 베이스 - I 데이터 베이스의 개요 Oracle 설치 기본적인 SQL문 익히기
8 데이터베이스 사용하기.
12 데이터베이스 사용하기.
MYSQL 설치 SQL언어 SQL언어의 활용 웹과 SQL언어와의 연동
14 SQLite DB 활용 B A S I C 1 4_ 고객 등록과 조회 L A B 1 4_ 수정과 삭제를 포함하는 고객관리시스템 Advanced LAB 14_ 탭 메뉴의 고객관리시스템.
KHS JDBC Programming 4 KHS
자료구조: CHAP 4 리스트 (3) 순천향대학교 컴퓨터공학과 하 상 호.
5장 Mysql 데이터베이스 한빛미디어(주).
13 인덱스 인덱스의 개념 인덱스의 구조 인덱스의 효율적인 사용 방법 인덱스의 종류 및 생성 방법 인덱스 실행 경로 확인
You YoungSEok Oracle 설치 You YoungSEok
1장. 데이터베이스 자료의 조직적 집합체_데이터베이스 시스템의 이해
JDBC (Java Database Connectivity)
환경 설정 예제 데이터베이스 생성 - 그림 3.34의 SQL Server 관리 스튜디오 창의 왼쪽 영역의 데이터베
Method & library.
자바 5.0 프로그래밍.
CHAP 13. 방명록 만들기 실습.
JDBC Lecture 004 By MINIO.
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
15장 컬렉션 프레임워크 Section 1 컬렉션 프레임워크의 개요 Section 2 리스트 Section 3 셋
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
자바 5.0 프로그래밍.
CHAP 21. 전화, SMS, 주소록.
문성우 SQL 실습 Part Ⅰ 문성우.
제 23 장 오라클에서 보안 기능.
Chapter 10 데이터 검색1.
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
 6장. SQL 쿼리.
6 객체.
GB ridge 웹 모바일및 빅데이터 응용과정 3주차: 데이터베이스 프로그래밍 [경기도형 대학생 취업브리지 사업]
Ⅰ. 데이터베이스 정의 Ⅱ. MS SQL 서버 Ⅲ. 데이터베이스 인터페이스
Presentation transcript:

12장. JDBC 프로그래밍

학습목표 데이터베이스를 이해하고 DBMS인 MySQL을 설치할 수 있다. • DML과 DDL의 이해 • 데이터베이스 생성, 테이블 생성, 테이블 조회 관련 문장 JDBC와 드라이버에 대해 이해하고 JDBC 프로그래밍 6단계를 구현할 수 있다. • JDBC 의미와 드라이버의 필요성 • JDBC 프로그래밍 6단계 구현 • JDBC 관련 클래스의 이해 JDBC 프로그래밍 방법을 이해하고 구현할 수 있다. • JDBC 드라이버 로드와 데이터베이스 연결 방법 • 원하는 테이블 생성 및 레코드 삽입 • 테이블 내용 조회

1. 데이터베이스와 MySQL

데이터베이스 개요 데이터베이스 데이터베이스 관리시스템 ‘관련 있는 데이터의 저장소’ 데이터와 응용 프로그램 사이에서 중재자 Section 1 데이터베이스와 MySQL p544 데이터베이스 개요 데이터베이스 ‘관련 있는 데이터의 저장소’ 여러 사람이나 응용시스템에 의해 참조 가능하도록 서로 논리적으로 연관되어 통합 관리되는 데이터의 모임 데이터베이스 관리시스템 데이터와 응용 프로그램 사이에서 중재자 모든 프로그램들이 데이터베이스를 유용하게 활용할 수 있도록 관리해 주는 소프트웨어

필드와 레코드, 파일과 데이터베이스 필드와 레코드 파일과 데이터베이스 필드: 특정한 종류의 데이터를 저장하기 위한 영역 Section 1 데이터베이스와 MySQL 필드와 레코드, 파일과 데이터베이스 필드와 레코드 필드: 특정한 종류의 데이터를 저장하기 위한 영역 레코드record : 필드가 여러 개 모이면 레코드 파일과 데이터베이스 파일 : 레코드가 여러 개 모이면 하나의 파일 데이터베이스: 서로 관련 있는 데이터들로 통합한 파일의 집합을

MySQL 개요 MySQL은 대표적인 오픈 소스 DBMS 제품 초기에는 무료로 연구용 Section 1 데이터베이스와 MySQL MySQL 개요 MySQL은 대표적인 오픈 소스 DBMS 제품 초기에는 무료로 연구용 현재는 성능이 향상되어 상용 DBMS로도 널리 사용되는 제품

MySQL Community Server 버전 내려받기 Section 1 데이터베이스와 MySQL MySQL Community Server 버전 내려받기 MySQL 홈페이지 [Download]를 누르고 왼쪽 메뉴 [MySQL Community Server]

MySQL JDBC 드라이버 내려받기 홈페이지 [Download] 페이지 하부 [Connector/J]를 선택 Section 1 데이터베이스와 MySQL MySQL JDBC 드라이버 내려받기 홈페이지 [Download] 페이지 하부 [Connector/J]를 선택 MySQL은 JDBC 드라이버를 [Connector/J]라고 부름

MySQL 설치 MySQL 설치 파일 [mysql-5.5.28-win32.msi]을 더블 클릭하여 설치 Section 1 데이터베이스와 MySQL MySQL 설치 MySQL 설치 파일 [mysql-5.5.28-win32.msi]을 더블 클릭하여 설치

설정 마법사 설정 마법사를 시작하여 설정할 MySQL 버전을 선택 [Standard Configuration]을 선택 Section 1 데이터베이스와 MySQL 설정 마법사 설정 마법사를 시작하여 설정할 MySQL 버전을 선택 [Standard Configuration]을 선택

MySQL 워크벤치 설치 MySQL 워크벤치 MySQL의 윈도우 유틸리티 홈페이지에서 내려받은 설치파일 Section 1 데이터베이스와 MySQL MySQL 워크벤치 설치 MySQL 워크벤치 MySQL의 윈도우 유틸리티 홈페이지에서 내려받은 설치파일 [mysql-workbench-gpl-5.2.44-win32.msi]로 설치

MySQL 설치 확인(1) 화면 왼쪽의 [Open Connection to Start Querying] Section 1 데이터베이스와 MySQL MySQL 설치 확인(1) 화면 왼쪽의 [Open Connection to Start Querying] [Local Instance MySQL55]를 더블 클릭하면 서버 접속 화면이 표시 대화상자 [Connect to MySQL Server] 설치 시 지정한 암호를 입력하여 서버에 접속

MySQL 설치 확인(2) MySQL 서버 실행의 다른 확인 방법 [Ctrl+Alt+Del]을 눌러 Section 1 데이터베이스와 MySQL MySQL 설치 확인(2) MySQL 서버 실행의 다른 확인 방법 [Ctrl+Alt+Del]을 눌러 [Windows 작업 관리자]에서 [서비스]에서 서비스되는 MySQL55를 확인

2. SQL

SQL 개요 SQL(Structured Query Language) Section 2 SQL p552 DBMS에서 사용되는 언어 데이터베이스를 구축하고, 새로운 자료를 입력하거나, 데이터를 수정, 또는 삭제, 검색하는데 이용되는 가장 기본적인 언어 1970년대에 IBM에서 개발 1980년대에 오라클에서 세계 최초로 상용 SQL 시스템을 발표 DDL(Data Definition Language) 데이터베이스와 테이블의 구조의 생성, 수정, 삭제에 이용 DML(Data Manipulation Language) 테이블 자료의 검색, 생성, 수정, 삭제에 이용

필드 자료형 테이블을 구성하는 필드는 입력되는 자료에 따라 그 유형이 결정 숫자형, 시간형, 문자형, 텍스 바이너리 Section 2 SQL 필드 자료형 테이블을 구성하는 필드는 입력되는 자료에 따라 그 유형이 결정 숫자형, 시간형, 문자형, 텍스 바이너리

SQL 기본 문장 use 문장 show 문장 desc 문장 질의에 대상을 지정하는 문장 Section 2 SQL SQL 기본 문장 use 문장 질의에 대상을 지정하는 문장 use databasename; show 문장 데이터베이스 시스템에 대한 여러 정보를 보여주는 문장 현재 생성된 데이터베이스를 모두 보여주는 문장 show databases; 현재 연결된 데이터베이스의 모든 테이블을 보여주는 문장 show tables; desc 문장 SQL 문 desc는 테이블의 구조 정보를 보여주는 문장 desc tablename;

create 문장 데이터베이스 생성 문장 create table: 테이블 생성 문장 Section 2 SQL create 문장 데이터베이스 생성 문장  create database databasename; create database univdb; create database testdb; create table: 테이블 생성 문장 create table tablename (fieldname fieldtype, …); create table department ( departid int NOT NULL auto_increment, name varchar(30) NOT NULL, numstudent int NULL, homepage varchar(30) NULL, PRIMARY KEY ( departid ) );

drop 문장 데이터베이스, 케이블, 인덱스 또는 사용자 정의 함수를 영구적으로 삭제하는 SQL 문 Section 2 SQL drop 문장 데이터베이스, 케이블, 인덱스 또는 사용자 정의 함수를 영구적으로 삭제하는 SQL 문 drop database: 데이터베이스를 전체를 삭제 drop database databasename; 데이터베이스 univdb를 영구히 삭제 drop database univdb; SQL 문 drop table는 하나 또는 여러 개의 테이블 전체를 삭제 drop table name[, name2, …]; 테이블 user를 영구히 삭제 drop table user; 테이블 student와 professor를 삭제 drop table student, professor

alter 문장 데이터베이스의 테이블 구조를 바꾸는 문장 테이블에 칼럼을 추가 테이블의 필드를 삭제 Section 2 SQL alter 문장 데이터베이스의 테이블 구조를 바꾸는 문장 테이블에 칼럼을 추가 alter table tablename add column create_clause; 테이블의 필드를 삭제 alter table tablename drop columnname; 테이블의 이름을 새로운 newname으로 바꾸는 문장 alter table tablename rename newname; 테이블 student에 새로운 칼럼 address2를 추가하는 문장 alter table student add column address2 varchar(100); 테이블 student에서 칼럼 year를 제거 alter table student drop year; 테이블 student의 이름을 stdt로 수정하는 문장 alter table student rename stdt;

insert 문장 insert는 테이블에 한 행인 레코드를 삽입하는 문장 Section 2 SQL insert 문장 insert는 테이블에 한 행인 레코드를 삽입하는 문장 insert [into] table [ (column, …) ] values ( values ) [, ( values ) …]; 테이블 student에 문장에서 기술된 값의 레코드를 삽입하는 문장 insert into student (id, passwd, name, year, snum, depart, mobile1, mobile2, address, email) values ('javajsp', 'java8394', '김정수', 2010, '1077818', '컴퓨터공학과', '011', '7649-9875', '서울시', 'java2@gmail.com'); 만일 insert 문장에서 기술된 값의 순서가 테이블 student의 필드 생성 순서와 일치한다면 필드 이름을 기술할 필요가 없음 insert into student values ('jdbcmania', 'javajsp', '김수현', 2009, '2044187', '컴퓨터공학과', '011', '87654-4983', '인천시', 'java@hanmail.com');

delete 문장 테이블의 행을 삭제하는 문장 Section 2 SQL delete 문장 테이블의 행을 삭제하는 문장 delete는 테이블 구조를 수정하지 않고 where 조건을 만족하는 행 자료를 모두 삭제 delete from tablename [where condition_clause]; 테이블 student의 모든 자료를 삭제 delete from student; 테이블 student에서 필드 year가 2008인 행을 모두 삭제 delete from student where year == 2008;

조회 select 문장 테이블 또는 테이블의 조합에서 조건인 [where] 절을 만족하는 행을 선택하는 문장 Section 2 SQL 조회 select 문장 테이블 또는 테이블의 조합에서 조건인 [where] 절을 만족하는 행을 선택하는 문장  select fieldname1 [, fieldname2 …] from tablename1 [, tablename2 …] [where fieldname <op> value]; 테이블 student에서 모든 레코드의 모든 필드를 나타내는 문장 select * from student; 테이블 student에서 모든 레코드의 필드 name, snum, depart만 나타내는 문장 select name, snum, depart from student; 테이블 student에서 필드 name이 ‘홍길동’인 레코드를 선택하여 모든 필드를 표시 select * from student where name = ‘홍길동’; 테이블 student에서 필드 name이 ‘홍’으로 시작하는 모든 레코드를 선택하여 모든 필드를 나타내는 문장 즉 이름이 ‘홍’으로 시작하는 레코드를 추출하는 문장 select * from student where name like ‘홍%’; 테이블 student에서 필드 name 중간에 ‘홍’이 있는 모든 레코드를 선택하여 모든 필드를 나타내는 문장 즉 이름 중간에 ‘홍’이 존재하는 레코드를 추출하는 문장 select * from student where name like ‘%홍%’;

update 문장 테이블의 구조를 바꾸지 않으면서 테이블 내용을 수정하는 문장 Section 2 SQL update 문장 테이블의 구조를 바꾸지 않으면서 테이블 내용을 수정하는 문장 update tablename set column1 = value1 [, column2 = value2 …] [where condition_clause]; 여기서 condition_clause는 조건을 만족하는 구문 테이블 student에서 필드 depart가 ‘전산학과’인 것을 모두 선택하여 depart를 ‘컴퓨터공학과’로 수정하는 문장 update student set depart = ’컴퓨터공학과’ where depart == ‘전산학과’; 테이블 student에서 필드 id가 ‘javajsp’인 레코드를 선택하여 필드 year는 2010으로, address는 “인천시’로 수정하는 문장 update student set year = 2010, address = ‘인천시’ where id == ‘javajsp’; 테이블 student에서 평균평점을 표현하는 필드 gpa가 4.3 이상인 학생의 레코드를 선택하여 필드 award에 ‘우등’으로 수정하는 문장  update student set award = ‘우등’ where gpa >= 4.3;

3. JDBC 프로그래밍 구현

JDBC 이해 Java DataBase Connectivity의 첫 자로 구성된 JDBC Section 3 JDBC 프로그래밍 구현 p562 JDBC 이해 Java DataBase Connectivity의 첫 자로 구성된 JDBC 자바 언어로 데이터베이스 프로그래밍을 하기 위한 라이브러리 특정한 DBMS에 종속되지 않는 관련 API(Application Programming Interface)를 제공

JDBC API 클래스 패키지 java.sql와 javax.sql로 구성 데이터베이스 기능을 지원하기 위한 표준 API Section 3 JDBC 프로그래밍 구현 JDBC API 클래스 패키지 java.sql와 javax.sql로 구성 Driver, DriverMananager, Connection, Statement, PreparedStatement, CallableStatement, ResultSet, ResultSetMetaData, DatabaseMetaData, DataSource 등 데이터베이스 기능을 지원하기 위한 표준 API 데이터베이스를 연결하여 테이블 형태의 자료를 참조 SQL 문을 질의 SQL 문의 결과를 처리

Section 3 JDBC 프로그래밍 구현 JDBC 역할 다양한 DBMS에 독립적으로 데이터베이스 프로그래밍을 가능하도록 하는 API(application programming interfaces) 규격 오라클(ORACLE), MySQL, SQLServer, DB2 등 어떤 DBMS를 사용하던지 소스의 수정을 최소화하여 바로 실행 JDBC와 함께 JDBC 드라이버(JDBC Driver)도 필요

JDBC 드라이버 설치 적당한 버전의 Connector/J 커넥터 설치 Section 3 JDBC 프로그래밍 구현 JDBC 드라이버 설치 적당한 버전의 Connector/J 커넥터 설치 [jre 설치폴더] 하부 [lib/ext]에 [mysql-connector-java-5.1.6-bin.jar]와 같은 JDBC 드라이버 파일을 복사 이클립스의 [JRE System Library] 하부에서 확인 가능 다른 방법으로는 적당한 폴더에 복사한 후 classpath를 설정하는 방법

Section 3 JDBC 프로그래밍 구현 JDBC 프로그래밍 과정 6단계 select 문으로 간단한 질의를 수행하는 6단계

실습예제 12-1 JDBC 프로그래밍 6단계 중에서 1, 2 그리고 6단계를 실행 드라이버의 파일 이름이 [Driver] Section 3 JDBC 프로그래밍 구현 실습예제 12-1 JDBC 프로그래밍 6단계 중에서 1, 2 그리고 6단계를 실행 드라이버의 파일 이름이 [Driver] 패키지가 [org.gjt.mm.mysql] 문장 Class.forName()을 호출 DriverManager.getConnection()을 호출

다양한 JDBC 드라이버 로드 문장 Class.forName() 동적으로 JDBC 드라이브 클래스를 로드 Section 3 JDBC 프로그래밍 구현 다양한 JDBC 드라이버 로드 문장 Class.forName() 동적으로 JDBC 드라이브 클래스를 로드 드라이버 클래스가 객체화 되고 객체화와 동시에 자동적으로 DriverManager.registerDriver()를 호출 DriverManager에서 관리하는 드라이버 리스트에 드라이버 등록 DBMS MySQL 경우 JDBC 드라이버 이름을 [com.mysql.jdbc.Driver]로도 제공 다양한 JDBC 드라이버

다양한 JDBC 관련 클래스 주요 클래스 JDBC의 인터페이스 Section 3 JDBC 프로그래밍 구현 다양한 JDBC 관련 클래스 주요 클래스 JDBC의 인터페이스 모든 데이터베이스에서 사용할 수 있는 공통적인 데이터베이스 참조 개념을 추상화 특정 제품의 JDBC드라이버에서 상속받아 구현됨

데이터베이스 연결 URL 구조 DriverManager.getConnection()을 호출 데이터베이스 URL 정보 Section 3 JDBC 프로그래밍 구현 데이터베이스 연결 URL 구조 DriverManager.getConnection()을 호출 클래스 DriverManager의 static 메소드인 getConnection() 등록된 드라이버 중에서 주어진 URL로 데이터베이스에 연결할 수 있는 드라이버를 찾아서 Driver 클래스의 메소드 connect()를 호출하고 결과인 Connection 객체를 반환 데이터베이스 URL 정보 JDBC 프로토콜의 의미하는 jdbc로 시작하며 다음에 <subprotocol>, <subname>을 기술 세 부분을 콜론(:)으로 구분

다양한 DBMS 연결 방법 MySQL의 URL에서 <subname> 요소 DBMS에 따른 데이터베이스 URL Section 3 JDBC 프로그래밍 구현 다양한 DBMS 연결 방법 MySQL의 URL에서 <subname> 요소 DBMS에 따른 데이터베이스 URL

실습예제 12-2 데이터베이스 myjavadb 만들기 데이터베이스 이름을 myjavadb로 생성하는 SQL 문장 Section 3 JDBC 프로그래밍 구현 실습예제 12-2 데이터베이스 myjavadb 만들기 데이터베이스 이름을 myjavadb로 생성하는 SQL 문장  create database myjavadb 메소드 executeUpdate() create 또는 drop과 같은 DDL이나 insert, delete, update와 같이 테이블의 내용을 변경하는 DML 문장에 사용 질의 문장이 DML이면 변경된 행의 수인 정수를 반환하며, DDL이면 0을 반환

테이블 생성과 레코드 삽입을 위한 SQL 테이블을 생성하는 SQL 문장 create Section 3 JDBC 프로그래밍 구현 테이블 생성과 레코드 삽입을 위한 SQL 테이블을 생성하는 SQL 문장 create 테이블 student 식별자, 이름, 학번, 학과 필드로 id, name, snum, dept 주 키는 id 테이블에 3개의 레코드를 삽입하는 insert 문장

실습예제 12-3 테이블 생성과 레코드 삽입 예제 Section 3 JDBC 프로그래밍 구현 package database.mysql; Statement stmt = con.createStatement();   //데이터베이스 myjavadb에 테이블 student 만들기 import java.sql.*; stmt.executeUpdate(sqlCT); System.out.println("테이블 student가 생성되었습니다."); public class CreateTable { public static void main(String[] args) { //데이터베이스 myjavadb의 테이블 student에 레코드 삽입 try { stmt.executeUpdate("insert into student values ('01', '홍길동', 20125678, '전산과학과');"); String driverName = "org.gjt.mm.mysql.Driver"; String DBName = "myjavadb"; stmt.executeUpdate("insert into student values ('02', '김제동', 20121234, '미생물학과');"); String dbURL = "jdbc:mysql://localhost:3306/" + DBName; //+ "?useUnicode=true&characterEncoding=euckr"; stmt.executeUpdate("insert into student values ('03', '김지숙', 20137892, '고고학과');"); String sqlCT = "create table student (" + "id varchar(20) NOT NULL, " + System.out.println("테이블 student에 3개의 레코드가 삽입되었습니다."); "name varchar(20) NOT NULL, " + "snum int NOT NULL, " + con.close(); "dept varchar(20) NOT NULL, " + } "PRIMARY KEY ( id ) " + catch (Exception e) { ");"; System.out.println("MySql 데이터베이스에 문제가 있습니다."); System.out.println(e.getMessage()); //JDBC 드라이버 로드 e.printStackTrace(); Class.forName(driverName); Connection con = DriverManager.getConnection(dbURL, "root", ""); //질의를 할 Statement 만들기

메소드 executeQuery()와 인터페이스 ResultSet Section 3 JDBC 프로그래밍 구현 메소드 executeQuery()와 인터페이스 ResultSet 메소드 executeQuery() 테이블 형태의 결과를 인터페이스 ResultSet으로 반환 데이터베이스 구조와 테이블의 내용에 영향을 미치지 않는 select 문 질의에 적합 인터페이스 ResultSet 실질적으로 질의 결과의 자료가 있는 영역과 함께 BOF, EOF 제공 첫 행 자료 이전 (Before the First Row)에 BOF(Begin Of File) 마지막 행 자료 이후 (After the Last Row)에 EOF(End Of File) 각각의 행에서 각 칼럼은 칼럼이름 또는 번호 순으로 식별 번호는 1번부터 시작

인터페이스 ResultSet의 커서 이동 메소드 Section 3 JDBC 프로그래밍 구현 인터페이스 ResultSet의 커서 이동 메소드 인터페이스 ResultSet 질의 결과의 현재 행(row)을 가리키는 커서(cursor)라는 개념 next() 커서를 다음 행으로 이동시키는 메소드 커서를 이동시키는 다양한 메소드를 제공 while 문장으로 ResultSet에서 자료가 있는 1행부터 마지막 행까지 순회 커서는 처음에 BOF에 위치 메소드 next()는 커서를 다음 행으로 이동 행이 자료가 있는 행이면 true를 반환 BOF나 EOF과 같이 자료가 없는 행이면 false를 반환

ResutSet의 메소드 getString()과 getInt() Section 3 JDBC 프로그래밍 구현 ResutSet의 메소드 getString()과 getInt() 행에서 컬럼 자료를 참조 ResultSet의 메소드 getString()을 이용 인자는 칼럼이름을 문자열로 직접 쓰거나 또는 칼럼 번호를 이용 getInt(), getDouble(), getDate() 등 다양한 컬럼 반환 메소드를 제공

실습예제 12-4 데이터베이스 myjavadb에 있는 테이블 student를 모두 조회하여 출력 Section 3 JDBC 프로그래밍 구현 실습예제 12-4 데이터베이스 myjavadb에 있는 테이블 student를 모두 조회하여 출력 package database.mysql; ResultSet result = stmt.executeQuery(SQL);   System.out.println(" --- 테이블 student 내용 조회 ---"); import java.sql.*; while (result.next()) { public class SelectTable { System.out.print(result.getString(1) + "\t"); public static void main(String[] args) { System.out.print(result.getString(2) + "\t"); try { System.out.print(result.getInt(3) + "\t"); String driverName = "org.gjt.mm.mysql.Driver"; System.out.println(result.getString(4)); String DBName = "myjavadb"; } String dbURL = "jdbc:mysql://localhost:3306/" + DBName; con.close(); String SQL = "select * from student;"; catch (Exception e) { System.out.println("MySql 데이터베이스에 문제가 있습니다."); //JDBC 드라이버 로드 Class.forName(driverName); System.out.println(e.getMessage()); Connection con = DriverManager.getConnection(dbURL, "root", ""); e.printStackTrace(); //질의를 할 Statement 만들기 Statement stmt = con.createStatement(); //데이터베이스 myjavadb의 테이블 student에 레코드 조회

Thank You !