Download ppt - JDBC 프로그래밍

Transcript
Page 1: JDBC  프로그래밍

JDBC 프로그래밍

이수지

이동주

Page 2: JDBC  프로그래밍

Page 2

데이터베이스

데이터 베이스란 ?

– 데이터 (Data) 들이 모여있는 본거지 (base) 를 말함

– 여러 프로그램이 필요로 하는 데이터를 한 곳에 모아놓고 통합 관리하는 곳이라는 뜻

고객관리프로그램

재고 정보

고객 정보

상품조회 프로그램

상품 정보

재고관리프로그램

쇼핑몰 데이터베이스

Page 3: JDBC  프로그래밍

Page 3

데이터베이스의 종류

데이터 베이스의 종류

– 계층형 데이터베이스

– 관계형 데이터베이스

– 객체지향 데이터베이스

Page 4: JDBC  프로그래밍

Page 4

DBMS

데이터를 저장 / 관리 기능은 운영체제가 제공하는 기능이 아님

별도의 소프트웨어 필요 데이터베이스 관리 시스템 (DBMS)

DBMS 종류에 따른 분류– 계층형 DBMS

– 관계형 DBMS

– 객체지향 DBMS

JDBC API 도 관계형 데이터베이스에 데이터를 읽고 쓰는데 사용되는 API

– 단독으로 사용하지 못하고 관계형 DBMS 를 통해서만 읽고 쓸 수 있음

Page 5: JDBC  프로그래밍

Page 5

MySQL 설치

MySQL 다운– http://www.mysql.com

Page 6: JDBC  프로그래밍

Page 6

MySQL 설치

MySQL 설치

Page 7: JDBC  프로그래밍

Page 7

MySQL 설치

MySQL 환경 설정

Page 8: JDBC  프로그래밍

Page 8

MySQL 실행

start mysqld-nt // MySQL 시작

mysqladmin –u root ping // MySQL 서버작동 체크

Mysqladmin –u root shutdown // MySQL 종료

Page 9: JDBC  프로그래밍

Page 9

데이터 베이스 생성

mysqladmin –u root create malldb // malldb 데이터베이스생성

mysql -u root // root 사용자 ID 로 mysql 시작

use malldb // database 를 malldb 로 바꿈

Page 10: JDBC  프로그래밍

Page 10

테이블 생성

테이블 이름 : 상품 정보 테이블 (goodsinfo)

컬럼 이름 영문명 타입 크기

상품코드 code char 5

상품명 name varchar 30

가격 price int 8

제조사 maker varchar 20

데이터를 저장하기 위해서 테이블설계를 해야 함

테이블설계- 테이블의 영문이름 , 컬럼이름 , 컬럼타입 , 컬럼크기를 정하는 것

Page 11: JDBC  프로그래밍

Page 11

테이블 생성

mysql 문법으로 표시

create table goodsinfo( // goodsinfo 테이블 생성

code char(5) not null, // char 형 code 컬럼 선언

name varchar(30) not null, // varchar 형 name 컬럼 선언

price int(8) not null, // int 형 price 컬럼 선언

maker varchar(20), // varchar 형 maker 컬럼 선언

primary key(code) // code 컬럼을 기본 키로 설정

); // 명령문 끝은 ;( 세미콜론 )

반드시 입력이 되어야 하는 컬럼에는 not null 을 선언 해주어야 함

Page 12: JDBC  프로그래밍

Page 12

테이블 생성

테이블 생성 화면

Page 13: JDBC  프로그래밍

Page 13

MySQL 명령문

입력 명령문- Insert into Table Name ( Column Name ) values (‘char value’, int value);

Page 14: JDBC  프로그래밍

Page 14

MySQL 명령문

출력 명령문- Select Column Name from Table Name;

- Select Column Name from Table Name where condition;

Page 15: JDBC  프로그래밍

Page 15

MySQL 명령문

갱신 명령문

- Update Table Name set Column Name = new value where condition;

삭제 명령문

- Delete from Table Name where condition;

테이블 삭제 명령문

- Drop table Table Name;

Page 16: JDBC  프로그래밍

Page 16

MySQL 명령문

MySQL 명령어 사용 – update, delete

Page 17: JDBC  프로그래밍

Page 17

JDBC(Java DataBase Connectivity)

자바 프로그램에서는 mysql 프로그램을 사용할 수 없음

JDK Library 의 JDBC API 로 데이터 베이스를 이용해야 함

JDBC 드라이버

- DBMS 와 JDK Library 의 JDBC API 를 연결하는 Module

Page 18: JDBC  프로그래밍

Page 18

JDBC 설치

JDBC 드라이버 다운 (Connector/J)

Page 19: JDBC  프로그래밍

Page 19

JDBC 설치

설치 과정- 다운받은 Zip 파일의 압축을 해제

- mysql-connector-java-5.1.7 폴더생성

- mysql-connector-java-5.1.7-bin.jar 파일복사

- JDK 가 설치된 Directory 아래의 jre/bin/ext Directory 에 복사

JRE 도 설치 되어 있다면 JRE 가 설치된 Directory 아래의 jre/bin/ext

Directory 에 파일을 복사하면 됨

Page 20: JDBC  프로그래밍

Page 20

JDBC 프로그램 작성

데이터베이스에 데이터를 읽기 / 쓰기 과정

I. JDBC 드라이버를 JVM 으로 로드

II. DataBase 에 연결

III. DataBase 에 데이터를 읽거나 쓰기

IV. 프로그램을 끝내기 전에 DataBase 와 연결종료

동시에 접속할 수 있는 연결의 수를 제한하기

때문에 중요함

JDBC 드라이버를 로드

DB 에 연결

DB 에 데이터를 읽거나 쓴다

DB 연결을 끊는다

반복 가능

Page 21: JDBC  프로그래밍

Page 21

JDBC 프로그래밍

JDBC 드라이버 로드- Class.forName("com.mysql.jdbc.Driver");

DataBase 연결- Connection conn = null; //Connection 타입의 conn 객체생성

- DriverManager.getConnection //database 연결 함수

("jdbc:mysql://210.115.58.96:3307/malldb","ju","root");

DataBase 연결 해제- conn.close();

프로그램- JDBCExample.java

Page 22: JDBC  프로그래밍

Page 22

JDBC 프로그래밍

DataBase 의 데이터 읽기- Statement stmt = conn.creatStatement(); // Statement 객체생성

- ResultSet rs = stmt.executeQuery(“select code, num from goodsinfo;”);

// executeQuery : select 문을 실행하는 함수

- rs.close(); // ResultSet 객체의 자원해제

- stmt.close(); // Statement 객체의 자원해제

MySQL server 는 ISO-8859-1 문자 셋을 사용하기 때문에 Unicode 문자 셋을 사용하는 Java 에서 출력하기 위해서는 변환이 필요

프로그램

- JDBCExample2.java

- JDBCExample3.java

Page 23: JDBC  프로그래밍

Page 23

JDBC 프로그래밍

DataBase 의 데이터 입력- Statement stmt = conn.createStatement(); //Statement 객체생성

- Int rowNum = stmt.executeUpdate(“insert goodsinfo(code,name,price,maker) “

+ “values(‘10006’,’ 미니오븐’ ,170000,’ 컨벡스’ );”);

// executeUpdate : insert, update, delete 문을 실행하는 함수

프로그램

- JDBCExample4.java