17장

Size: px
Start display at page:

Download "17장"

Transcription

1 17 JDBC 프로그래밍 O b j e c t i v e s 데이터베이스개념을이해한다. JDBC 구조를이해한다. MySQL을간단히설치하고활용할줄안다. 데이터베이스생성 접속, 테이블생성, 레코드추가 삭제, 데이터검색 수정등을위한 SQL 문을이해한다. JDBC를이용한데이터베이스프로그래밍을작성해본다.

2 C H A P T E R JAVA PROGRAMMING JDBC 프로그래밍 17.1 데이터베이스 데이터베이스란? 데이터베이스 데이터베이스 (database) 는여러응용시스템들의통합된정보들을저장하여운영할수있는공용데이터들의집합이다. 데이터베이스는대규모의데이터를효율적으로저장, 검색, 갱신할수있도록데이터를고도로조직화하여저장한다. 급여관리 시스템 근태관리 시스템 복리후생관리 시스템 DB 서버 급여 정보인사 정보근태 정보복리후생 정보 데이터베이스 [ 그림 17-1] 데이터베이스를사용하는기업내의여러소프트웨어시스템

3 제 17 장 JDBC 프로그래밍 CHAPTER 예를들어, 회사의직원을관리하는시스템을생각해보자. [ 그림 17-1] 과같이각직원에대한인사정보, 근태정보, 급여정보, 복리후생정보들이있을수있다. 이정보들은서로연관되어있어만약한직원이퇴사를하면모든정보에영향을미친다. 또한회사내의각부서에서사용하는서로다른다수의프로그램이동시에접속하여이러한정보들을사용할수있으므로데이터베이스는정보들을고도로조직화하여데이터의무결성이유지될수있도록관리하여야한다. DBMS 그러면 [ 그림 17-1] 과같이데이터베이스에대해서로다른여러소프트웨어시스템이동시에접근할때이를잘관리할수있는방법은무엇인가? 데이터베이스를관리하는소프트웨어시스템을 DBMS(DataBase Management System) 라고한다. DBMS는다수의사용자들이동시에데이터베이스를사용할수있도록관리한다. 대표적인 DBMS로는오라클 (Oracle), 마이크로소프트의 SQL Server, MySQL, IBM의 DB2 등이있다. 데이터베이스를이용하는모든자바응용프로그램역시반드시 DBMS에게데이터처리를요청하며, 이작업은 DBMS에의해일관성있게처리된다. DBMS 데이터베이스의종류 데이터베이스의종류에는크게관계형데이터베이스 (relational database), 객체지향데이터베이스 (object oriented database) 가있다. 관계형데이터베이스객체지향데이터베이스 관계형데이터베이스관계형데이터베이스는 [ 그림 17-2] 와같이데이터들이다수의테이블로구성된다. [ 그림 17-2] 에서첫번째테이블은두개의열 (column) 로구성되며, 두번째테이블은 3 개의열로구성된다. 첫번째테이블은사원 ID(employee_id) 와이름 (name) 으로구성되고, 두번째테이블은사원 ID(employee_id) 와급여대상 ID(payroll_id), 급여 (amount) 로구성된다. 테이블의각행 (row) 은하나의레코드 (record) 이며각테이블은키 (key) 와값 (value) 들의관계로표현된다. 키는테이블의열이름이며, 키중에서특정레코드를검색하거나레코드들을정렬할때우선적으로참조되는키를일차키 (primary key) 라고한다. 여러테이블간에는 [ 그림 17-2] 의 employee_id와같이공통된이름의열을포함할수있으며, 이런경우서로다른테이블간에관계 (relation) 가성립된다. 현재사용되는대부분의데이터베이스는관계형데이터베이스이며 JDBC API도관계형데이터베이스에대한 API이다. 테이블열행레코드키값일차키관계

4 824 JAVA 자바프로그래밍 JAVA PROGRAMMING 키 값 employee_id name 김철수 최고봉 테이블 A 두 테이블이 동일한키를 가지고 있음 : 관계 이기자 payroll_id amount employee_id 테이블 B [ 그림 17-2] 관계형데이터베이스구조 오브젝트데이터베이스 객체지향데이터베이스객체지향데이터베이스는객체지향프로그래밍에쓰이는것으로, 정보를객체의형태로표현하는데이터베이스이며오브젝트데이터베이스 (object database) 라고도부른다. 장점은객체모델이그대로데이터베이스에도적용되므로응용프로그램의객체모델과데이터베이스의모델이부합하는데있다. 그러나현재관계형데이터베이스로된 DBMS와그에따른응용프로그램들이주류를이루고있어객체지향데이터베이스는틈새시장을차지하고있다. SQL SQL SQL(Structured Query Language) 은관계형데이터베이스관리시스템 (DBMS) 에서데이터베이스스키마생성, 자료의검색 관리 수정, 그리고데이터베이스객체접근관리등을위해고안된언어이다. 이언어는다수의데이터베이스관련프로그램들이표준으로채택하고있다. 자바응용프로그램에서도 SQL로작성된간단한데이터베이스처리명령어를 DBMS에게보내어데이터베이스처리를지시한다. JDBC JDBC JDBC는관계형데이터베이스에저장된데이터를접근및조작할수있게하는자바 API이다. JDBC는자바응용프로그램이다양한 DBMS에대해일관된 API로데이터베이스연결, 검색, 수정, 관리등을할수있게한다. 그러므로자바응용프로그램개발자는 DBMS의종류에관계없이 JDBC API만을이용하면된다.

5 제 17 장 JDBC 프로그래밍 CHAPTER [ 그림 17-3] 과같이일반적으로 DBMS를제공하는회사에서 JDBC 드라이버를제공하며자바응용프로그램에서는 JDBC 드라이버를 JDBC 매니저를통해로드하여사용한다. 따라서사용하는 DBMS가바뀌어도이에따른 JDBC 드라이버만로드하면되므로자바프로그램에서는 DBMS 변경에따른프로그램수정이필요없다. JDBC 드라이버매니저는자바 API에서지원하는클래스이다. 이해를돕기위해이들용어를다시한번정리한다. JDBC 드라이버매니저 : 자바 API에서지원하며 DBMS를접근할수있는JDBC 드라이버로드 JDBC 드라이버 : DBMS마다고유한 JDBC 드라이버를제공하며, JDBC 드라이버와 DBMS는전용프로토콜을이용하여데이터베이스처리 DBMS : 데이터베이스관리시스템으로데이터베이스생성 삭제, 데이터생성 검색 삭제등을전담하는소프트웨어시스템 클라이언트 자바 응용프로그램 JDBC 드라이버 매니저 DBMS 가 바뀌어도자바 응용프로그램은변하지 않음 자바 응용프로그램 JDBC 드라이버 매니저 클라이언트 JDBC 드라이버매니저를이용하는자바응용프로그램은 DBMS가 A사의것이든 B사의것이든상관없이작동됩니다. 그것은각 DBMS 회사에서제공하는 JDBC 드라이버를설치하면해결되기때문이며, 이드라이버를로딩하는것은 JDBC 드라이버매니저이기때문입니다. A 사 JDBC 드라이버 B 사 JDBC 드라이버 A 사 DMBS 전용 프로토콜 B 사 DMBS 전용 프로토콜 A 사 DBMS DB 서버 B 사 DBMS DB 서버 [ 그림 17-3] JDBC 구조 오라클, SQL Server, MySQL 등을무엇이라고부르는가? 다수의테이블로구성되고테이블의관계를통해데이터를관리하는데이터베이스종류는무엇인가? CHECK TIME 자바로작성된데이터베이스관리프로그램이다양한종류의 DBMS 에관계없이작성될수있는이유는무엇인가?

6 826 JAVA 자바프로그래밍 JAVA PROGRAMMING 17.2 MySQL MySQL은무료로다운로드받아설치하여간편하게사용할수있는관계형 DBMS 중의하나이다. 현재 MySQL은데이터베이스시스템으로많이사용되고있다. 이장에서는 MySQL을이용하여데이터베이스응용프로그램개발을실습해보기로한다. 다운로드 MySQL은 [ 그림 17-4] 와같이 에서다운로드받을수있다. 여기서다운로드를선택하고 [ 그림 17-5] 와같이마이크로소프트윈도우플랫폼을선택하여다운로드를시작한다. 클릭! [ 그림 17-4] MySQL 다운로드사이트에서다운로드선택

7 제 17 장 JDBC 프로그래밍 CHAPTER 플랫폼 선택 다운로드 [ 그림 17-5] 마이크로소프트윈도우플랫폼선택후다운로드 설치 설치를시작한후에는 [ 그림 17-6] 과같이 Typical 설치를선택하여설치를진행한다. Typical 이면실습용으로는충분하다.

8 828 JAVA 자바프로그래밍 JAVA PROGRAMMING 실습용으로는 typical 이면 충분 [ 그림 17-6] 설치타입을 Typical 로선택 설치가완료된후에는 [ 그림 17-7] 과같이MySQL을 DBMS로사용하기위해 MySQL Server 설정을선택하여바로설정을시작한다. 서버 설정 선택 [ 그림 17-7] 설치후서버설정선택

9 제 17 장 JDBC 프로그래밍 CHAPTER DBMS 서버설정 실습용으로는표준설정이면충분하므로 [ 그림 17-8] 과같이표준설정 (Standard Configuration) 을선택한다. 표준 설정 선택 [ 그림 17-8] 표준설정선택 표준설정선택후 Next 버튼을누르면 [ 그림 17-9] 와같은화면이나타난다. 여기서 SQL 서버가윈도우서비스 (windows service) 로동작하도록선택하고 MySQL 서버를항상사용할것이아니라면서버자동시작은선택을해제한다. 그리고 MySQL 명령행 (command line) 도구사용을위해경로가윈도우의환경변수에포함되도록옵션을선택한다.

10 830 JAVA 자바프로그래밍 JAVA PROGRAMMING MySQL 서버가 윈도우 서비스로 동작 수동으로 서버 동작시킴 환경 변수에 경로 포함 [ 그림 17-9] 표준설정화면 다시 Next 버튼을누르면보안관련선택을위한 [ 그림 17-10] 의화면이나타난다. 여기의서버인스턴스설정화면에서의보안및계정관련옵션은실습용으로사용할것이므로디폴트를선택한다. 실습용으로 익명 계정 생성 [ 그림 17-10] 서버인스턴스설정 이제 MySQL 서버의다운로드및설치가완료되었다. 지금부터 MySQL 데이터베이스관리시스템의작동이가능하다. 그러면 MySQL 서버와접속하여자바응용프로그램의

11 제 17 장 JDBC 프로그래밍 CHAPTER 대변자역할을수행할 MySQL 용 JDBC 드라이버를설치해보자. JDBC 드라이버다운로드 일반적으로 JDBC 드라이버는 DBMS 회사가제공한다. MySQL용 JDBC 드라이버도 [ 그림 17-11] 과같이MySQL 사이트에서다운로드받도록한다. ZIP 파일형태로다운로드받는다. MySQL Connectors 페이지에서 Connector/J 선택 ZIP 파일 다운로드 [ 그림 17-11] MySQL 용 JDBC 드라이버다운로드사이트 JDBC 드라이버설치 JDBC 드라이버는따로설치과정이필요없고, 다운로드받은 ZIP 파일을풀어서생긴 JAR 파일을 [ 그림 17-12] 와같이JDK 설치디렉터리밑의 JRE\LIB\EXT 디렉터리에복사 하면된다. 만약 JDK는없고JRE만설치한경우에는 JRE 설치디렉터리밑의 LIB\EXT 디렉터리에복사하도록한다. 이디렉터리에설치하면 JDK나이클립스에서특별히 JDBC 드라이버경로를지정하지않아도자동으로참조한다.

12 832 JAVA 자바프로그래밍 JAVA PROGRAMMING [ 그림 17-12] JDBC 드라이버설치 17.3 콘솔에서 MySQL 데이터베이스활용 우선자바로 MySQL 을이용하는데이터베이스프로그래밍을해보기전에콘솔창에서 MySQL의명령을직접활용하여데이터베이스와테이블을만들고, 레코드를쓰고, 검색하는등의 MySQL 활용을직접해보자. MySQL 서버실행 MySQL 서버는설정시윈도우서비스로동작하도록설정하였으므로 MySQL 서버를실행시키기위해윈도우의제어판에서다음메뉴를이용한다. 제어판 \ 시스템및보안 \ 관리도구 에서 서비스 실행 서비스관리자를실행하면 [ 그림 17-13] 과같이MySQL 서버의실행상태를확인할수있다. MySQL 서버는서비스관리자에서수동으로실행시작및중지할수있으며, MySQL 서버를사용하지않을때는불필요한리소스를사용하지않도록서버를중지시킨다.

13 제 17 장 JDBC 프로그래밍 CHAPTER [ 그림 17-13] MySQL 서버실행상태를확인하고실행시작및중지지시 데이터베이스생성 자바에서 JDBC를이용하여데이터베이스에접근하여데이터를조작하려면먼저데이터베이스가만들어져있어야한다. MySQL 설치디렉터리밑의 bin 디렉터리에설치된명령행도구인 mysqladmin.exe를이용하여다음과같이데이터베이스를생성해보자. mysqladmin -u root create sampledb mysqladmin 명령에서 -u root 옵션은 root 계정으로명령을수행하는것을의미하며 create 옵션은데이터베이스를생성하도록하는명령이다. sampledb는생성할데이터베이스의이름이다. 이명령의실행결과비어있는 sampledb가생성된다. [ 그림 17-14] 는이명령의실제실행모습이다. [ 그림 17-14] sampledb 데이터베이스생성

14 834 JAVA 자바프로그래밍 JAVA PROGRAMMING 데이터베이스접속 데이터베이스에접속할때는다음과같이 mysql 명령을이용한다. mysql.exe 는 MySQL 설치디렉터리밑의 bin 디렉터리에설치된명령행도구이다. mysql -u root mysql에서 -u root는 root 계정으로접속함을의미한다. 접속후에는 mysql 프롬프트가나타나는데여기서다양한명령을입력하여데이터베이스를조작할수있다. [ 그림 17-15] 는 mysql을실행한화면이다. use 명령은지정한데이터베이스를사용하는명령으로서 mysql> 프롬프트에서사용한다음의 use 명령은 sampledb를사용하겠다는명령이다. use sampledb [ 그림 17-15] mysql 명령을이용하여데이터베이스를접속하고 sampledb 를사용하도록지정 테이블생성관계형데이터베이스에서는행과열로구성된테이블단위로데이터가저장되므로데이터를저장하기위해서는먼저테이블을만들어야한다. 본예제에서는 < 표 17-1> 과같은구조를갖는 student라는이름의테이블을생성해보자. 각행은다음과같은의미를가진다. 첫번째행은열의이름 두번째행은테이터타입과크기를표시. char, varchar 등의타입은자바의타입이아닌MySQL에서사용되는타입임에주의

15 제 17 장 JDBC 프로그래밍 CHAPTER id name dept char(7) varchar(10) varchar(20) < 표 17-1> student 테이블구조 MySQL의자세한데이터타입은사이트에서문서를참조하기바란다. 이제테이블을생성해보자. 테이블생성은 MySQL 프롬프트상에서다음과같은 create 명령을이용하여생성한다. create table student (name varchar(10) not null, dept varchar(20) not null, id char(7) not null, primary key(id)); create table 다음에테이블이름지정 열이름데이터타입 ( 데이터크기 ) 을콤마로분리하여나열 "not null" 은해당열의값이null이될수없음을의미 "primary key" 는일차키를지정하는옵션이며 id를일차키로지정 모든명령은 ; 으로끝나며 ; 을입력하지않고 <Enter> 키를누르면아직명령이종료되지않은것으로간주하여 ; 이입력될때까지기다림 [ 그림 17-16] 은 MySQL 프롬프트에서 create 명령으로 student 테이블을생성한후, desc 명령으로테이블의구조를재출력한그림이다. [ 그림 17-16] 테이블생성

16 836 JAVA 자바프로그래밍 JAVA PROGRAMMING 레코드추가 테이블이생성되었으면데이터를기록할수있다. 테이블에는레코드단위로데이터를추가하는데, 레코드추가는다음과같이 insert 명령을사용한다. insert into student (name, dept, id) values (' 김철수 ',' 컴퓨터시스템 ',' '); insert into 다음에테이블이름지정 테이블이름다음괄호안에열이름을콤마로구분하여나열 values 다음괄호안에열의값들을콤마로구분하여나열 문자타입의데이터는단일인용부호로묶어서표시함에유의 이명령은 student 테이블에한레코드를추가하는데, name, dept, id 필드의값을 김철수, 컴퓨터시스템, 로각각입력한다. [ 그림 17-17] 은 insert 명령을이용하여 3개의레코드를추가하는명령을실행하는모습이다. [ 그림 17-17] 레코드추가 [ 그림 17-17] 과같이 3 개의레코드를추가한후의 student 테이블구조는 < 표 17-2> 와같다. < 표 17-2> 3 개의레코드가추가된 student 테이블 id name dept 김철수컴퓨터시스템 최고봉멀티미디어 이기자컴퓨터공학

17 제 17 장 JDBC 프로그래밍 CHAPTER 데이터검색 데이터베이스로부터데이터검색은다음과같은 select 명령을이용한다. select name, dept, id from student where dept=' 컴퓨터공학 '; select 다음에는데이터를추출할열이름을콤마로분리하여나열 모든열에대해데이터를추출할때는 * 를열이름대신사용 from 다음에테이블이름을지정 where 다음에검색조건지정. 위의예에서 dept 값이 컴퓨터공학 인레코드검색 where는생략가능 이 select 명령은 student 테이블에서 dept 필드의값이 컴퓨터공학 인레코드를찾아 name, dept, id 필드의값을출력할것을지시하는명령이다. student 테이블의모든레코드를검색하여출력하도록지시하는명령은다음과같다. select * from student; [ 그림 17-18] 은 select 명령을실제입력하여데이터를검색하는화면이다. [ 그림 17-18] select 명령을이용한데이터검색

18 838 JAVA 자바프로그래밍 JAVA PROGRAMMING 데이터수정 데이터수정은다음과같은 update 명령을이용한다. update student set dept=' 컴퓨터공학 ' where name=' 최고봉 '; update 다음에는테이블이름지정 set 다음에수정할열의이름과값을콤마로분리하여나열 where 다음에는검색조건을지정. 위의예에서는 name 값이 최고봉 인레코드의데이터수정 where는생략가능 이 update 명령은 student 테이블의 name 필드의값이 최고봉 인레코드를찾아서 dept 필드의값을 컴퓨터공학 으로변경하도록지시하는명령이다. [ 그림 17-19] 는 update 명령을이용하여데이터를수정하는화면이다. [ 그림 17-19] update 명령을이용한데이터수정 레코드삭제 테이블에들어있는레코드의삭제는다음과같은 delete 명령을이용한다. delete from student where name=' 최고봉 '; delete from 다음에는테이블이름지정

19 제 17 장 JDBC 프로그래밍 CHAPTER where 다음에는검색조건지정. 앞의예에서는 name 값이 최고봉 인레코드삭제 where는생략가능 이 delete 명령은 student 테이블에서 name 필드의값이 최고봉 인레코드를찾아삭제하도록지시하는명령이다. [ 그림 17-20] 은 delete 명령을이용하여레코드를삭제하는화면이다. [ 그림 17-20] 레코드삭제 본문에서만든 student 테이블에서 dept 가 컴퓨터시스템 인레코드를찾아레코드를모두삭제하라. 다음표와같은테이블 University 를만들고 5 개의레코드를추가하라. CHECK TIME id name location char(7) varchar(20) varchar(100)

20 840 JAVA 자바프로그래밍 JAVA PROGRAMMING 17.4 JDBC 프로그래밍 앞절에서 MySQL의명령행도구를이용하여콘솔에서데이터베이스를생성하고, 데이터의추가 검색 수정 삭제등을실행하였다. 이제자바로데이터베이스를조작하는응용프로그램을작성하는방법을설명해보자. JDBC 프로그래밍이란 JDBC API를이용하여데이터의추가, 삭제, 수정, 검색등을할수있는자바응용프로그램을작성하는것이다. 이절의설명은 MySQL이설치되어있고 sampledb가만들어진상황에서계속된다. 데이터베이스연결설정 JDBC 프로그래밍의가장첫번째단계는데이터베이스와의연결이다. 데이터베이스와의연결을위해서는우선데이터베이스의 JDBC 드라이버의로드가이루어져야한다. JDBC 드라이버 MySQL 서버의 JDBC 드라이버로드 JDBC 드라이버를로드하기위해드라이버클래스파일을로드한다. 다음과같이자바의 Class 클래스의 forname() 메소드를이용하면특정클래스파일을읽어들일수있다. try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printstacktrace(); } 위의코드는 MySQL의 JDBC 드라이버인 com.mysql.jdbc.driver 클래스를로드하여드라이버인스턴스를생성하고 DriverManager에등록한다. DriverManager 클래스는 [ 그림 17-3] 에서의 JDBC 드라이버매니저역할을하는클래스이다. JDBC 드라이버의클래스이름은사용하는 DBMS에따라다를수있으므로해당 DBMS의 JDBC 드라이버문서를참조해야한다. 만일로드중에 JDBC 드라이버가없으면 ClassNotFoundException 이발생하므로반드시 try-catch 문을사용한다. Connection 객체 자바응용프로그램과 JDBC의연결 DriverManager는자바응용프로그램을 JDBC 드라이버에연결시켜주는클래스이다. 다음코드와같이 DriverManager.getConnection() 메소드를호출하여데이터베이스에연결하고 Connection 객체를반환한다.

21 제 17 장 JDBC 프로그래밍 CHAPTER try { Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/sampledb", "root",""); } catch (SQLException e) { e.printstacktrace(); } getconnection() 에서 jdbc: 이후에지정되는 URL 형식은 DBMS에따라다르므로 JDBC 문서참조 MySQL 서버가현재동일한컴퓨터에서동작하므로서버주소를 localhost로지정 MySQL의경우디폴트로 3306 포트를사용 sampledb는앞서생성한 DB의이름 root 는 DB에로그인할계정이름이며, 는 root의패스워드 sampledb 데이터베이스에연결하는 JDBC 프로그램작성 예제 17-1 JDBC를이용하여 sampledb 데이터베이스에연결하는자바응용프로그램을작성하라. 만약 MySQL 서버가실행중이지않으면다음과같은오류가발생한다. DB 연결오류 이경우는윈도우의서비스관리자에서 MySQL 서버를동작시키면된다 import java.sql.*; public class JDBC_Ex1 { public static void main (String[] args) { try { Class.forName( com.mysql.jdbc.driver ); // MySQL 드라이버로드 Connection conn = DriverManager.getConnection( jdbc:mysql://localhost: 3306/sampledb, root, ); // JDBC 연결 System.out.println( DB 연결완료 ); } catch (ClassNotFoundException e) { System.out.println( JDBC 드라이버로드오류 ); } catch (SQLException e) { System.out.println( DB 연결오류 ); } } }

22 842 JAVA 자바프로그래밍 JAVA PROGRAMMING 실행 결과 DB 연결완료 데이터베이스사용 Statement 클래스 ResultSet 클래스 자바에서데이터베이스에연결한후에는 17.3절에서설명한 MySQL 명령행도구에서사용한 SQL 문을똑같이사용하여데이터베이스에접근한다. 자바에서 SQL 문을실행하기위해서는 Statement 클래스를이용하고, SQL 문실행결과를얻어오기위해서는 ResultSet 클래스를이용한다. Statement 클래스에서자주사용되는메소드는 < 표 17-3> 과같다. < 표 17-3> Statement 클래스메소드 메소드 ResultSet executequery(string sql) int executeupdate(string sql) void close() 설명주어진 sql 문을실행하고결과는 ResultSet 객체에반환 insert, update 또는 delete와같은sql 문을실행하고, sql 문실행으로영향을받은행의개수나 0을반환 Statement 객체의데이터베이스와 JDBC 리소스를즉시반환 executequery() executeupdate() 데이터를검색하기위해서는 executequery() 메소드를사용하고, 추가 수정 삭제와같은데이터변경은 executeupdate() 메소드를이용한다. ResultSet 객체는현재데이터의행 ( 레코드위치 ) 을가리키는커서 (cursor) 를관리한다. 초깃값은첫번째행이전을가리키도록되어있다. 따라서 ResultSet 클래스는주로커서의위치와관련된메소드와레코드를가져오는메소드를제공한다. ResultSet 클래스에서자주사용되는메소드는 < 표 17-4> 와같다. < 표 17-4> ResultSet 클래스메소드 메소드 boolean first() boolean last() boolean next() boolean previous() boolean absolute(int row) 설명커서를첫번째행으로이동커서를마지막행으로이동커서를다음행으로이동커서를이전행으로이동커서를지정된행 row로이동

23 제 17 장 JDBC 프로그래밍 CHAPTER boolean isfirst() boolean islast() void close() Xxx getxxx(string columnlable) Xxx getxxx(int columnindex) 첫번째행이면 true 반환마지막행이면 true 반환 ResultSet 객체의데이터베이스와 JDBC 리소스를즉시반환 Xxx는해당데이터타입을나타내며현재행에서지정된열이름 (columnlable) 에해당하는데이터를반환한다. 예를들어, int형데이터를읽는메소드는 getint() 이다. Xxx는해당데이터타입을나타내며현재행에서지정된열인덱스 (columnindex) 에해당하는데이터를반환한다. 예를들어, int형데이터를읽는메소드는 getint() 이다. 데이터검색 테이블의모든데이터검색 student 테이블의모든데이터를검색하는코드는다음과같다. Statement stmt = conn.createstatement(); ResultSet rs = stmt.executequery("select * from student"); 검색된결과는 rs 에들어있다. 특정열만검색테이블에서특정열만검색하고싶은경우는 * 대신에검색할열의이름을콤마로분리하여나열한다. 다음은 student 테이블에서모든레코드에대해 name과 id 필드만을검색한다. ResultSet rs = stmt.executequery("select name, id from student"); 검색된결과는 rs 에들어있다. 조건검색특정조건에부합하는데이터를검색하고싶은경우는다음코드와같이 select 문의 where 절을이용하여조건에맞는데이터를검색한다. 다음은 student 테이블에서 id 필드의값이 인레코드를검색한다. select 문 where 절

24 844 JAVA 자바프로그래밍 JAVA PROGRAMMING ResultSet rs = stmt.executequery("select name, id, dept from student where id=' '"); 검색된결과는 rs 에들어있다. 검색된데이터의사용검색의결과는 ResultSet 객체에저장된다. ResultSet 클래스의메소드를이용하여커서가가리키는현재행에대해열의값을읽어온다. 예를들어, ResultSet 클래스의객체 rs에저장된 name 필드의값과 id 필드의값을얻어내기위해서는각각다음과같이한다. String sname = rs.getstring("name"); // name 필드값읽기 String id = rs.getstring("id"); // id 필드값읽기 다음코드는 ResultSet 객체에저장된각행의모든열을순차적으로출력하는코드이다. while (rs.next()) { // rs에저장된다음행으로커서를옮긴다. System.out.println(rs.getString("name")); System.out.println(rs.getString("id")); System.out.println(rs.getString("dept")); } 열의값을읽기위해서는열의데이터타입을알고있어야하며, 그에맞는 ResultSet 클래스의메소드를호출해야한다. 또는모든데이터타입에대해 getstring() 메소드로읽을수있는데, 이경우는모든값이문자열로반환되므로프로그램내에서적절한데이터타입으로변환해서사용해야한다. ISO 유니코드 문자열코드문제 MySQL은기본적으로문자집합으로 ISO 표준을사용하지만자바는유니코드 (Unicode) 를사용한다. 그러므로자바에서 MySQL로부터한글데이터를읽어와서출력하면한글이깨져서출력된다. 따라서한글을제대로출력하기위해서는 ISO 표준의문자코드를유니코드로변환하여야한다. 다음코드는 ResultSet에포함된데이터중에서 name 필드의문자열값을 ISO 에서유니코드로변환하여출력하는코드이다.

25 제 17 장 JDBC 프로그래밍 CHAPTER String ISO_8859_1String = rs.getstring("name"); // MySQL로부터읽은문자열은 ISO 표준코드 byte [] UnicodeBytes = ISO_8859_1String.getBytes("ISO "); // 유니코드로변환 String UnicodeString = new String(UnicodeBytes); System.out.print(UnicodeString); 반대로 SQL 문의조건검색같은문장에서한글을쓰면자바는유니코드로인코딩하므로 MySQL에서는한글이아닌다른문자로인식하여검색이제대로실행되지않는다. 따라서이경우는유니코드를 ISO 로변환해야 MySQL에서제대로한글로인식하여처리한다. 다음코드는유니코드를 ISO 로변환하여 SQL 문을 MySQL 로전달하여실행시키는코드이다. // " 홍길동 " 을유니코드의바이트배열로변환한다. byte [] UnicodeBytes = " 홍길동 ".getbytes(); // 유니코드바이트배열을 "ISO " 표준의코드로변환하여문자열을구성한다. String ISO_8859_1String = new String(UnicodeBytes, "ISO "); stmt.executequery("select name, id, dept from student where name='"+ ISO_8859_1String +"'"); 데이터검색과출력 예제 17-2 앞서생성한 sampledb의 student 테이블의모든데이터를출력하고, 특별히이름이 이기자 인학생의데이터를출력하는프로그램을작성하라 import java.io.*; import java.sql.*; public class JDBC_Ex2 { public static void main (String[] args) { Connection conn; Statement stmt = null; try { Class.forName( com.mysql.jdbc.driver ); // MySQL 드라이버로드 conn = DriverManager.getConnection( jdbc:mysql://localhost:3306/ sampledb, root, ); // JDBC 연결 System.out.println( DB 연결완료 );

26 846 JAVA 자바프로그래밍 JAVA PROGRAMMING stmt = conn.createstatement(); // SQL문처리용 Statement 객체생성 ResultSet srs = stmt.executequery( select * from student ); // 테이블의모든데이터검색 printdata(srs, name, id, dept ); srs = stmt.executequery( select name, id, dept from student where name= + new String( 이기자.getBytes(), ISO ) + ); // name이 이기자 인레코드만검색 printdata(srs, name, id, dept ); 유니코드를 ISO 로 변환 } catch (ClassNotFoundException e) { System.out.println( JDBC 드라이버로드오류 ); } catch (SQLException e) { System.out.println( SQL 실행오류 ); } catch (UnsupportedEncodingException e) { System.out.println( 지원되지않는인코딩타입 ); } } // 레코드의각열의값화면에출력 private static void printdata(resultset srs, String col1, String col2, String col3) throws UnsupportedEncodingException, SQLException { while (srs.next()) { if (!col1.equals( )) System.out.print(new String(srs.getString( name ).getbytes( ISO ))); // 한글코드변환 } } } if (!col2.equals( )) ISO 을 System.out.print( \t \t + srs.getstring( id )); 유니코드로 변환 if (!col3.equals( )) System.out.println( \t \t + new String(srs.getString( dept ). getbytes( ISO ))); // 한글코드변환 else System.out.println(); 실행 결과 DB 연결완료 이기자 컴퓨터공학 김철수 컴퓨터시스템 이기자 컴퓨터공학

27 제 17 장 JDBC 프로그래밍 CHAPTER 데이터의변경 추가, 수정, 삭제와같이데이터에변경을가하는조작은 executeupdate() 메소드를이용한다. 레코드추가새로운레코드를추가하기위해서는 SQL의 insert 문을사용한다. 다음은 insert 문을이용하여데이터를추가하는코드이다. insert 문 stmt.executeupdate("insert into student (name, id, dept) values('" + new String(" 아무개 ".getbytes(), "ISO ") + "', ' ', '" + new String(" 컴퓨터공학 ".getbytes(),"iso ") +"');"); SQL 문은 MySQL에서처리하므로한글을유니코드에서 ISO 로변환한것에유의한다. 데이터수정기존열의값을수정하기위해서는 SQL의 update 문을사용한다. 다음은 update 문을이용하여조건에맞는테이블의열의값을수정하는코드이다. update 문 stmt.executeupdate("update student set id=' ' where name='"+ new String(" 아무개 ".getbytes(), "ISO ") +"'"); 레코드삭제레코드를삭제하기위해서는 SQL의 delete 문을사용한다. 다음은 delete 문을이용하여조건에맞는테이블의행을삭제하는코드이다. delete 문 stmt.executeupdate("delete from student where name='"+ new String(" 아무개 ".getbytes(), "ISO ") +"'");

28 848 JAVA 자바프로그래밍 JAVA PROGRAMMING 예제 17-3 데이터의변경 앞서생성한 sampledb의 student 테이블에새로운학생정보를추가하고, 새로생성된학생의정보를수정한후에다시삭제하는코드를작성하라. 데이터가변경될때마다모든테이블의내용을출력하라 import java.io.*; import java.sql.*; public class JDBC_Ex3 { public static void main (String[] args) { Connection conn; Statement stmt = null; try { Class.forName( com.mysql.jdbc.driver ); // MySQL 드라이버로드 conn = DriverManager.getConnection( jdbc:mysql://localhost:3306/ sampledb, root, ); // JDBC 연결 System.out.println( DB 연결완료 ); stmt = conn.createstatement(); // SQL 문처리용 Statement 객체생성 stmt.executeupdate( insert into student (name, id, dept) values( + new String( 아무개.getBytes(), ISO ) +, , + new String ( 컴퓨터공학.getBytes(), ISO ) + ); ); // 레코드추가 printtable(stmt); stmt.executeupdate( update student set id= where name= + new String( 아무개.getBytes(), ISO ) + ); // 데이터수정 printtable(stmt); stmt.executeupdate( delete from student where name= + new String( 아무개.getBytes(), ISO ) + ); // 레코드삭제 printtable(stmt); } catch (ClassNotFoundException e) { System.out.println( JDBC 드라이버로드오류 ); } catch (SQLException e) { System.out.println( SQL 실행오류 ); } catch (UnsupportedEncodingException e) { System.out.println( 지원되지않는인코딩타입 ); } } // 레코드의각열의값화면에출력 private static void printtable(statement stmt) throws SQLException, UnsupportedEncodingException { ResultSet srs = stmt.executequery( select * from student ); while (srs.next()) { System.out.print(new String(srs.getString( name ).getbytes( ISO )));

29 제 17 장 JDBC 프로그래밍 CHAPTER } } } System.out.print( \t \t + srs.getstring( id )); System.out.println( \t \t + new String(srs.getString( dept ).getbytes ( ISO ))); 실행 결과 DB 연결완료 이기자 컴퓨터공학 아무개 컴퓨터공학 김철수 컴퓨터시스템 아무개 컴퓨터공학 이기자 컴퓨터공학 김철수 컴퓨터시스템 이기자 컴퓨터공학 김철수 컴퓨터시스템 다음과같은구조를갖는 cdinfo 라는테이블을생성하는 SQL 문을작성하라. 일차키는 cd_id 로한다. cd_id title publisher artist price CHECK TIME char(5) varchar(50) varchar(30) varchar(20) int 위에서생성된 cdinfo 테이블에다음과같은레코드를추가하는자바코드를작성하라. cd_id title publisher artist price a0001 홍길동 1 집오늘레코드홍길동 8000 cdinfo 테이블에서 price 가 원인 CD 의타이틀을모두출력하는자바코드를작성하라.

30 850 JAVA 자바프로그래밍 JAVA PROGRAMMING 요약 데이터베이스는여러응용시스템들의통합된정보들을저장하여운영할수있는공용데이터들의집합이다. SUMMARY 데이터베이스를관리하는시스템을 DBMS라고한다. 현재사용되는대부분의데이터베이스는관계형데이터베이스이며 JDBC API도관계형데이터베이스에대한 API이다. SQL은관계형데이터베이스관리시스템에서데이터베이스스키마생성, 자료의검색 관리 수정, 데이터베이스객체접근관리등을위해고안된언어이다. JDBC는자바에서관계형데이터베이스에저장된데이터를접근및조작할수있게하는 API로서다양한 DBMS에대해일관된 API로데이터베이스연결, 검색, 수정, 관리등을할수있게한다. JDBC 드라이버는 DBMS 회사에서제공한다. JDBC 프로그래밍순서는 JDBC 드라이버로드, 데이터베이스연결, SQL 문장실행및실행결과사용, 연결해제의순으로구성된다. JDBC 프로그래밍에서데이터베이스연결, SQL 실행, 결과사용을위해각각 Connection 클래스, Statement 클래스, ResultSet 클래스를이용한다.

31 제 17 장 JDBC 프로그래밍 CHAPTER Open Challenge 데이터베이스로사진저장및추출하기 문자열이나정수등과같은단순한데이터가아닌사진과같은바이너리데이터를저장해보자. 바이너리데이터를데이터베이스에저장하기위해서는 BLOB(Binary Large OBject) 라는데이터타입을사용한다. MySQL에서 16MB 이하의데이터를저장할수있는데이터타입은 mediumblob이다. 테이블구조는다음과같다. ID FILENAME FILE int(11) varchar(50) mediumblob mediumblob 타입은 16MB까지지원하나큰사진을저장하려면 MySQL의설정도변경하여야하므로여기서는편의상 1MB 이하의사진만저장하도록하자. 메뉴는사진저장과모든사진보기, 그리고프로그램종료가있으며버튼을만들어버튼을누를때마다다음사진이보이도록한다. 실행예시화면은아래와같다. 콘솔에 이런 메시지가 나타나고실행이 종료되면 MySQL 용 JDBC 드라이버가 설치되어 있지 않은것이므로 드라이버를 설치 후다시 실행한다.

32 852 JAVA 자바프로그래밍 JAVA PROGRAMMING 연습문제 EXERCISE 이론문제 1. JDBC에대한설명으로잘못된것은? 1 자바에서데이터베이스를사용할수있게하는 API 2 JDBC 드라이버는 JDBC 매니저를통해로드한다. 3 DBMS가바뀌어도이에따른 JDBC 드라이버만로드하면되므로프로그램수정이필요없다. 4 관계형및객체지향데이터베이스용 API를각각제공한다. 2. 데이터베이스의테이블, 행, 열에대해설명하라. 3. 관계형데이터베이스관리시스템에서데이터베이스스키마생성, 자료의검색 관리 수정, 데이터베이스객체접근관리등을위해고안된언어를무엇이라하는가? 4. Statement 클래스와 ResultSet 클래스에대해설명하라. 5. 다음표와같은구조의테이블이있다. id int name varchar(20) 데이터베이스에서 id 필드의값을읽으려고한다. 빈칸을채워라. ResultSet rs;... int id =rs. ; 실습문제 1. 윈도우 PC에서 MySQL의명령행도구를이용하여 bookdb라는데이터베이스를생성하라.

33 제 17 장 JDBC 프로그래밍 CHAPTER 2. bookdb 데이터베이스에다음과같은테이블구조를갖는 book 테이블을생성하는 SQL 문을작성하고 MySQL 명령도구를이용하여실제테이블을생성하라. Primay key 는 id 로하라. id title publisher author int varchar(50) varchar(30) varchar(30) 3. 위에서생성한테이블에다음과같은레코드를추가하는 SQL 문을작성하고 MySQL 명령도구를이용하여실제레코드를추가하라. id title publisher author 0 엄마를부탁해 창비 신경숙 1 덕혜옹주 다산책방 권비영 2 1Q84 문학동네 무라카미하루키 4. MySQL 명령도구를이용하여 3 번에서추가한레코드를모두삭제하라 번의레코드를자바프로그램에서추가하도록프로그램을작성하라. 6. 책의 title이 1Q84 인레코드의레코드를찾아 title을 IQ84 로, author를 김아무개 로수정하는자바프로그램을작성하라 번에서수정한레코드를찾아서삭제하는자바프로그램을작성하라. 8. 다음과같은기능을수행하는프로그램을작성하라. 프로그램이시작되면데이터베이스의모든데이터를출력하고데이터베이스관리메뉴를출력하라. 관리메뉴는추가, 삭제, 수정, 끝내기가있다. 추가메뉴에서는사용자에게 id, 책제목, 출판사, 저자정보를입력받아데이터베이스에레코드를추가하라. 삭제메뉴에서는사용자에게 id 값을입력받아레코드를삭제하라. 수정메뉴에서는사용자에게수정할속성의이름을입력받고, 속성의현재값과새로운값을입력받아레코드를수정하라.

쉽게 풀어쓴 C 프로그래밊

쉽게 풀어쓴 C 프로그래밊 Power Java 제 27 장데이터베이스 프로그래밍 이번장에서학습할내용 자바와데이터베이스 데이터베이스의기초 SQL JDBC 를이용한프로그래밍 변경가능한결과집합 자바를통하여데이터베이스를사용하는방법을학습합니다. 자바와데이터베이스 JDBC(Java Database Connectivity) 는자바 API 의하나로서데이터베이스에연결하여서데이터베이스안의데이터에대하여검색하고데이터를변경할수있게한다.

More information

Microsoft PowerPoint - aj-lecture5.ppt [호환 모드]

Microsoft PowerPoint - aj-lecture5.ppt [호환 모드] JDBC 프로그래밍 524730-1 2019 년봄학기 4/8/2019 박경신 데이터베이스의개념 데이터베이스 (Database) 여러응용시스템들의통합된정보들을저장하여운영할수있는공용데이터들의집합 데이터의저장, 검색, 갱신을효율적으로수행할수있도록데이터를고도로조직화하여저장 DBMS 데이터베이스관리시스템 (DataBase Management System) 오라클 (Oracle),

More information

10.ppt

10.ppt : SQL. SQL Plus. JDBC. SQL >> SQL create table : CREATE TABLE ( ( ), ( ),.. ) SQL >> SQL create table : id username dept birth email id username dept birth email CREATE TABLE member ( id NUMBER NOT NULL

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드]

Microsoft PowerPoint - GUI _DB연동.ppt [호환 모드] GUI 설계 6 주차 DB 연동김문정 tops@yd.ac.kr 강의순서강의전환경 JDK 설치및환경설정톰캣설치및환경설정이클립스 (JEE) 설치및환경설정 MySQL( 드라이버 ) 설치및커넥터드라이브연결 DB 생성 - 계정생성이클립스에서 DB에연결서버생성 - 프로젝트생성 DB연결테이블생성및등록 2 MySQL 설치확인 mysql - u root -p MySQL 에데이터베이스추가

More information

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

DBMS & SQL Server Installation Database Laboratory

DBMS & SQL Server Installation Database Laboratory DBMS & 조교 _ 최윤영 } 데이터베이스연구실 (1314 호 ) } 문의사항은 cyy@hallym.ac.kr } 과제제출은 dbcyy1@gmail.com } 수업공지사항및자료는모두홈페이지에서확인 } dblab.hallym.ac.kr } 홈페이지 ID: 학번 } 홈페이지 PW:s123 2 차례 } } 설치전점검사항 } 설치단계별설명 3 Hallym Univ.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습문제 Chapter 05 데이터베이스시스템... 오라클로배우는데이터베이스개론과실습 1. 실습문제 1 (5 장심화문제 : 각 3 점 ) 6. [ 마당서점데이터베이스 ] 다음프로그램을 PL/SQL 저장프로시져로작성하고실행해 보시오. (1) ~ (2) 7. [ 마당서점데이터베이스 ] 다음프로그램을 PL/SQL 저장프로시져로작성하고실행해 보시오. (1) ~ (5)

More information

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET 135-080 679-4 13 02-3430-1200 1 2 11 2 12 2 2 8 21 Connection 8 22 UniSQLConnection 8 23 8 24 / / 9 3 UniSQL 11 31 OID 11 311 11 312 14 313 16 314 17 32 SET 19 321 20 322 23 323 24 33 GLO 26 331 GLO 26

More information

Microsoft PowerPoint - 10Àå.ppt

Microsoft PowerPoint - 10Àå.ppt 10 장. DB 서버구축및운영 DBMS 의개념과용어를익힌다. 간단한 SQL 문법을학습한다. MySQL 서버를설치 / 운영한다. 관련용어 데이터 : 자료 테이블 : 데이터를표형식으로표현 레코드 : 테이블의행 필드또는컬럼 : 테이블의열 필드명 : 각필드의이름 데이터타입 : 각필드에입력할값의형식 학번이름주소연락처 관련용어 DB : 테이블의집합 DBMS : DB 들을관리하는소프트웨어

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

JDBC 소개및설치 Database Laboratory

JDBC 소개및설치 Database Laboratory JDBC 소개및설치 JDBC } What is the JDBC? } JAVA Database Connectivity 의약어 } 자바프로그램안에서 SQL 을실행하기위해데이터베이스를연결해주는응용프로그램인터페이스 } 연결된데이터베이스의종류와상관없이동일한방법으로자바가데이터베이스내에서발생하는트랜잭션을제어할수있도록하는환경을제공 2 JDBC Driver Manager }

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins Project 1-3: Implementing DML Due: 2015/11/11 (Wed), 11:59 PM 이번프로젝트의목표는프로젝트 1-1 및프로젝트 1-2에서구현한프로그램에기능을추가하여간단한 DML을처리할수있도록하는것이다. 구현한프로그램은 3개의 DML 구문 (insert, delete, select) 을처리할수있어야한다. 테이블데이터는파일에저장되어프로그램이종료되어도사라지지않아야한다.

More information

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 MySQL - 명령어 1. 데이터베이스관련명령 2. 데이터베이스테이블관련명령 3. SQL 명령의일괄실행 4. 레코드관련명령 5. 데이터베이스백업및복원명령 1. 데이터베이스관련명령 데이터베이스접속명령 데이터베이스접속명령 mysql -u계정 -p비밀번호데이터베이스명 C: > mysql -ukdhong p1234 kdhong_db 데이터베이스생성명령 데이터베이스생성명령

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) 8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 ) - DDL(Data Definition Language) : show, create, drop

More information

歯JavaExceptionHandling.PDF

歯JavaExceptionHandling.PDF (2001 3 ) from Yongwoo s Park Java Exception Handling Programming from Yongwoo s Park 1 Java Exception Handling Programming from Yongwoo s Park 2 1 4 11 4 4 try/catch 5 try/catch/finally 9 11 12 13 13

More information

JAVA PROGRAMMING 실습 09. 예외처리

JAVA PROGRAMMING 실습 09. 예외처리 2015 학년도 2 학기 예외? 프로그램실행중에발생하는예기치않은사건 예외가발생하는경우 정수를 0으로나누는경우 배열의크기보다큰인덱스로배열의원소를접근하는경우 파일의마지막부분에서데이터를읽으려고하는경우 예외처리 프로그램에문제를발생시키지않고프로그램을실행할수있게적절한조치를취하는것 자바는예외처리기를이용하여예외처리를할수있는기법제공 자바는예외를객체로취급!! 나뉨수를입력하시오

More information

웹연동 } 웹 (Web) 환경에서데이터베이스시스템을연동하는방법은다음과같다 } Server Client 구조의통신 (2-Tier) } Server Middleware Client 구조의통신 (3-Tier) 2

웹연동 } 웹 (Web) 환경에서데이터베이스시스템을연동하는방법은다음과같다 } Server Client 구조의통신 (2-Tier) } Server Middleware Client 구조의통신 (3-Tier) 2 DB 와 WEB 연동 (1) [2-Tier] Java Applet 이용 웹연동 } 웹 (Web) 환경에서데이터베이스시스템을연동하는방법은다음과같다 } Server Client 구조의통신 (2-Tier) } Server Middleware Client 구조의통신 (3-Tier) 2 JAVA Applet 을이용한 Client Server 연동기법 } Applet

More information

- 다음은 Statement 객체를사용해서삽입 (insert) 작업의예 String sql = "insert into member(code, name, id, pwd, age) values ("; int id = 10; sql = sql + id +, ;// 항목사이에

- 다음은 Statement 객체를사용해서삽입 (insert) 작업의예 String sql = insert into member(code, name, id, pwd, age) values (; int id = 10; sql = sql + id +, ;// 항목사이에 Statement 객체와 PreparedStatement 객체 Connection 객체 - Connection 객체가생성되면데이터베이스에접근이가능해진다. - Connection 객체는자바와데이터베이스의접속된상태의객체를말한다. 데이터베이스에 DML작업을위해서는반드시접속을먼저해야한다. 그리고, 작업후에는반드시접속을해제한다. - Connection 객체를생성할때두개의문자열이필요하다.

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이타베이스 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2013.05.15. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

Microsoft PowerPoint Python-DB

Microsoft PowerPoint Python-DB 순천향대학교컴퓨터공학과이상정 순천향대학교컴퓨터공학과 1 학습내용 데이터베이스 SQLite 데이터베이스 파이썬과데이터베이스연결 순천향대학교컴퓨터공학과 2 데이터베이스 (Database) 소개 데이터베이스 DBMS (DataBase Management System) 이라고도함 대용량의데이터를매우효율적으로처리하고저장하는기술 SQLite, 오라클, MySQL 등이있음

More information

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 1 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

준비사항 } 실습조건 } MS-SQL Server 에연결가능한컴퓨터 } 실습용서버혹은별도의 MS-SQL 서버 } Northwind 데이터베이스 } MS-SQL 2000 에제공되는예제데이터베이스 } MS-SQL 2008 에는 Northwind 가기본으로제공되지않기때문에실

준비사항 } 실습조건 } MS-SQL Server 에연결가능한컴퓨터 } 실습용서버혹은별도의 MS-SQL 서버 } Northwind 데이터베이스 } MS-SQL 2000 에제공되는예제데이터베이스 } MS-SQL 2008 에는 Northwind 가기본으로제공되지않기때문에실 JDBC 를통한 SQL 연동 JAVA 프로그래밍 준비사항 } 실습조건 } MS-SQL Server 에연결가능한컴퓨터 } 실습용서버혹은별도의 MS-SQL 서버 } Northwind 데이터베이스 } MS-SQL 2000 에제공되는예제데이터베이스 } MS-SQL 2008 에는 Northwind 가기본으로제공되지않기때문에실습용서버를사용할것을권장 2 예제데이터베이스의테이블구조

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 3 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

@OneToOne(cascade = = addr_id) private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a 1 대 1 단방향, 주테이블에외래키실습 http://ojcedu.com, http://ojc.asia STS -> Spring Stater Project name : onetoone-1 SQL : JPA, MySQL 선택 http://ojc.asia/bbs/board.php?bo_table=lecspring&wr_id=524 ( 마리아 DB 설치는위 URL

More information

MySQL-.. 1

MySQL-.. 1 MySQL- 기초 1 Jinseog Kim Dongguk University jinseog.kim@gmail.com 2017-08-25 Jinseog Kim Dongguk University jinseog.kim@gmail.com MySQL-기초 1 2017-08-25 1 / 18 SQL의 기초 SQL은 아래의 용도로 구성됨 데이터정의 언어(Data definition

More information

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드] - Socket Programming in Java - 목차 소켓소개 자바에서의 TCP 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 Q/A 에코프로그램 - EchoServer 에코프로그램 - EchoClient TCP Programming 1 소켓소개 IP, Port, and Socket 포트 (Port): 전송계층에서통신을수행하는응용프로그램을찾기위한주소

More information

FileMaker ODBC 및 JDBC 가이드

FileMaker ODBC 및 JDBC 가이드 FileMaker ODBC JDBC 2004-2019 FileMaker, Inc.. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker, FileMaker Cloud, FileMaker Go FileMaker, Inc.. FileMaker WebDirect FileMaker,

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

슬라이드 1

슬라이드 1 Tadpole for DB 1. 도구개요 2. 설치및실행 4. 활용예제 1. 도구개요 도구명 소개 Tadpole for DB Tools (sites.google.com/site/tadpolefordb/) 웹기반의데이터베이스를관리하는도구 Database 스키마및데이터관리 라이선스 LGPL (Lesser General Public License) 특징 주요기능

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

Microsoft PowerPoint - 03-TCP Programming.ppt

Microsoft PowerPoint - 03-TCP Programming.ppt Chapter 3. - Socket in Java - 목차 소켓소개 자바에서의 프로그램작성방법 주요클래스와메소드 HTTP 프로토콜을이용한예제 에코프로그램 에코프로그램 - EchoServer 에코프로그램 - EchoClient Q/A 1 1 소켓소개 IP,, and Socket 포트 (): 전송계층에서통신을수행하는응용프로그램을찾기위한주소 소켓 (Socket):

More information

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자 SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전

More information

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드]

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드] MS SQL Server 마이크로소프트사가윈도우운영체제를기반으로개발한관계 DBMS 모바일장치에서엔터프라이즈데이터시스템에이르는다양한플랫폼에서운영되는통합데이터관리및분석솔루션 2 MS SQL Server 개요 3.1 MS SQL Server 개요 클라이언트-서버모델을기반으로하는관계 DBMS로서윈도우계열의운영체제에서만동작함 오라클관계 DBMS보다가격이매우저렴한편이고,

More information

제11장 프로세스와 쓰레드

제11장 프로세스와 쓰레드 제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드

More information

강의 개요

강의 개요 DDL TABLE 을만들자 웹데이터베이스 TABLE 자료가저장되는공간 문자자료의경우 DB 생성시지정한 Character Set 대로저장 Table 생성시 Table 의구조를결정짓는열속성지정 열 (Clumn, Attribute) 은이름과자료형을갖는다. 자료형 : http://dev.mysql.cm/dc/refman/5.1/en/data-types.html TABLE

More information

FileMaker 15 ODBC 및 JDBC 설명서

FileMaker 15 ODBC 및 JDBC 설명서 FileMaker 15 ODBC JDBC 2004-2016 FileMaker, Inc.. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker FileMaker Go FileMaker, Inc.. FileMaker WebDirect FileMaker, Inc... FileMaker.

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

5장 SQL 언어 Part II

5장 SQL 언어 Part II 5 장 SQL 언어 Part II 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 1 / 26 데이터조작문 데이터검색 : SELECT 문데이터추가 : INSERT 문데이터수정 : UPDATE 문데이터삭제 : DELETE 문 박창이 ( 서울시립대학교통계학과 ) 5 장 SQL 언어 Part II 2 / 26 SELECT

More information

gnu-lee-oop-kor-lec06-3-chap7

gnu-lee-oop-kor-lec06-3-chap7 어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base

More information

문서 템플릿

문서 템플릿 HDSI 툴분석 [sql injection 기술명세서 ] Sql injection 기술명세서 Ver. 0.01 이문서는 sql injection 기술명세가범위입니다. Copyrights Copyright 2009 by CanvasTeam@SpeeDroot( 장경칩 ) All Rights Reserved. 장경칩의사전승인없이본내용의전부또는일부에대한복사, 전재,

More information

JAVA PROGRAMMING 실습 05. 객체의 활용

JAVA PROGRAMMING 실습 05. 객체의 활용 public class Person{ public String name; public int age; } public Person(){ } public Person(String s, int a){ name = s; age = a; } public String getname(){ return name; } @ 객체의선언 public static void main(string

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

PowerPoint Presentation

PowerPoint Presentation 자바프로그래밍 1 배열 손시운 ssw5176@kangwon.ac.kr 배열이필요한이유 예를들어서학생이 10 명이있고성적의평균을계산한다고가정하자. 학생 이 10 명이므로 10 개의변수가필요하다. int s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; 하지만만약학생이 100 명이라면어떻게해야하는가? int s0, s1, s2, s3, s4,

More information

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher( 실행할페이지.jsp); 다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher

More information

슬라이드 제목 없음

슬라이드 제목 없음 MS SQL Server 마이크로소프트사가윈도우운영체제를기반으로개발한관계 DBMS 모바일장치에서엔터프라이즈데이터시스템에이르는다양한플랫폼에서운영되는통합데이터관리및분석솔루션 2 MS SQL Server 개요 3.1 MS SQL Server 개요 클라이언트-서버모델을기반으로하는관계 DBMS 로서윈도우계열의운영체제에서만동작함 오라클관계 DBMS 보다가격이매우저렴한편이고,

More information

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 ALTIBASE HDB 6.5.1.5.10 Patch Notes 목차 BUG-46183 DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG-46249 [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4 BUG-46266 [sm]

More information

Design Issues

Design Issues 11 COMPUTER PROGRAMMING INHERIATANCE CONTENTS OVERVIEW OF INHERITANCE INHERITANCE OF MEMBER VARIABLE RESERVED WORD SUPER METHOD INHERITANCE and OVERRIDING INHERITANCE and CONSTRUCTOR 2 Overview of Inheritance

More information

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

Microsoft Word - src.doc

Microsoft Word - src.doc IPTV 서비스탐색및콘텐츠가이드 RI 시스템운용매뉴얼 목차 1. 서버설정방법... 5 1.1. 서비스탐색서버설정... 5 1.2. 컨텐츠가이드서버설정... 6 2. 서버운용방법... 7 2.1. 서비스탐색서버운용... 7 2.1.1. 서비스가이드서버실행... 7 2.1.2. 서비스가이드정보확인... 8 2.1.3. 서비스가이드정보추가... 9 2.1.4. 서비스가이드정보삭제...

More information

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas

More information

개발문서 Oracle - Clob

개발문서 Oracle - Clob 개발문서 ORACLE CLOB 2008.6.9 ( 주 ) 아이캔매니지먼트 개발팀황순규 0. clob개요 1. lob과 long의비교와 clob와 blob 2. 테이블생성쿼리 ( 차이점-추가사항 ) 3. select 쿼리 4. insert 쿼리및 jdbc프로그래밍 5. update 쿼리및 jdbc프로그래밍 (4, 5). putclobdata() 클래스 6. select

More information

FileMaker ODBC and JDBC Guide

FileMaker ODBC and JDBC Guide FileMaker 13 5 5 5 6 6 6 7 7 8 8 8 8 9 9 10 10 11 11 12 12 12 12 12 12 13 13 14 14 16 16 18 4 19 19 20 20 21 21 21 23 23 23 23 25 26 26 26 26 27 28 28 28 28 29 31 31 32 33 33 33 33 34 34 35 35 35 36 1

More information

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

JTable과 MVC(Model-View-Controller) 구조 - 모델-뷰-컨트롤러구조는데이터의저장과접근에대한제공은모델이담당하고, 화면표시는뷰, 이벤트의처리는컨트롤러가하도록각역할을구분한구조이다. 즉, 역할의분담을통하여상호간의영향을최소화하고각요소의독립성을보장하여독자

JTable과 MVC(Model-View-Controller) 구조 - 모델-뷰-컨트롤러구조는데이터의저장과접근에대한제공은모델이담당하고, 화면표시는뷰, 이벤트의처리는컨트롤러가하도록각역할을구분한구조이다. 즉, 역할의분담을통하여상호간의영향을최소화하고각요소의독립성을보장하여독자 JTable 에서사용하는 Model 객체 JTable - JTable은데이터베이스의검색결과를 GUI에보여주기위해사용되는컴포넌트이다. 가로와세로로구성된테이블을을사용해서행과열에데이터를위치시킨다. - JTable을사용하는방법은다음과같다. 1 테이블에출력될데이터를 2차원배열에저장한다. Object[][] records = { {..., {..., {... ; 2 제목으로사용할문제열을

More information

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter 파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter 클래스의사용법은다음과같다. PrintWriter writer = new PrintWriter("output.txt");

More information

[ 목차 ] 5.1 데이터베이스프로그래밍개념 5.2 T-SQL T-SQL 문법 5.3 JAVA 프로그래밍 2

[ 목차 ] 5.1 데이터베이스프로그래밍개념 5.2 T-SQL T-SQL 문법 5.3 JAVA 프로그래밍 2 5 장 SQL 응용 데이터베이스실험실 1 [ 목차 ] 5.1 데이터베이스프로그래밍개념 5.2 T-SQL 5.2.1 T-SQL 문법 5.3 JAVA 프로그래밍 2 5.1 데이터베이스프로그래밍개념 프로그래밍 이라고하면프로그램소스를설계하고, 작성하고, 디버깅하는과정을말한다. 프로그램 혹은소프트웨어는컴퓨터에서주어진작업을하는명령어나열을말한다. 데이터베이스프로그래밍은명확한정의는없지만데이터베이스에데이터를정의하고,

More information

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint 자바-기본문법(Ch2).pptx 자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March

More information

뇌를 자극하는 JSP & Servlet 슬라이드

뇌를 자극하는 JSP & Servlet 슬라이드 데이터베이스사용하기 JSP & Servlet Contents 학습목표 데이터베이스를이용하면파일보다훨씬더체계적이고구조적인방법으로데이터를저장하고관리할수있다. 그래서웹프로그래밍에서도데이터베이스를사용해야할경우가많이있는데이번장에서는그방법을배워보자. 내용 데이터베이스개론 MySQL 설치하기 Connector/J 설치하기 웹컴포넌트에서데이터베이스를사용하는방법 데이터베이스커넥션풀의설치와사용

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager

Data Sync Manager(DSM) Example Guide Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager Data Sync Manager (DSM) Example Guide DSM Copyright 2003 Ari System, Inc. All Rights reserved. Data Sync Manager are trademarks or registered trademarks of Ari System, Inc. 1 Table of Contents Chapter1

More information

슬라이드 1

슬라이드 1 UNIT 6 배열 로봇 SW 교육원 3 기 학습목표 2 배열을사용핛수있다. 배열 3 배열 (Array) 이란? 같은타입 ( 자료형 ) 의여러변수를하나의묶음으로다루는것을배열이라고함 같은타입의많은양의데이터를다룰때효과적임 // 학생 30 명의점수를저장하기위해.. int student_score1; int student_score2; int student_score3;...

More information

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770>

<C1A62038B0AD20B0ADC0C7B3EBC6AE2E687770> 제 8강 SQL: 관계데이터베이스언어 강의목표 관계데이타베이스언어로서상용 DBMS에서가장널리사용되는 SQL의동작원리에관하여학습하고, 이를이용하여다양한질의문을작성하는방법을습득한다 기대효과 SQL의데이터정의기능을이해한다 SQL의데이터조작기능중질의기능을이해한다 SQL의데이터조작기능중데이터갱신기능을이해한다 SQL의데이터조작기능중뷰및인덱스관련기능을이해한다 SQL 의개요

More information

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx 2018 학년도 1 학기 JAVA 프로그래밍 II 514760-1 2018 년봄학기 5/10/2018 박경신 Lab#1 (ImageTest) Lab#1 은영상파일 (Image) 을읽어서정보를출력 Java Tutorials Lesson: Working with Images https://docs.oracle.com/javase/tutorial/2d/images/index.html

More information

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345]) 예외와예외클래스 예외처리 514760-1 2016 년가을학기 12/08/2016 박경신 오류의종류 에러 (Error) 하드웨어의잘못된동작또는고장으로인한오류 에러가발생되면 JVM실행에문제가있으므로프로그램종료 정상실행상태로돌아갈수없음 예외 (Exception) 사용자의잘못된조작또는개발자의잘못된코딩으로인한오류 예외가발생되면프로그램종료 예외처리 추가하면정상실행상태로돌아갈수있음

More information

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id=entitymanagerfactory class=org.springframework.orm.jpa.localentitymanagerfactorybean p:persistenceunitname= JPA 와 Hibernate - 스프링의 JDBC 대신에 JPA를이용한 DB 데이터검색작업 - JPA(Java Persistence API) 는자바의 O/R 매핑에대한표준지침이며, 이지침에따라설계된소프트웨어를 O/R 매핑프레임워크 라고한다. - O/R 매핑 : 객체지향개념인자바와관계개념인 DB 테이블간에상호대응을시켜준다. 즉, 객체지향언어의인스턴스와관계데이터베이스의레코드를상호대응시킨다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 배효철 th1g@nate.com 1 목차 표준입출력 파일입출력 2 표준입출력 표준입력은키보드로입력하는것, 주로 Scanner 클래스를사용. 표준출력은화면에출력하는메소드를사용하는데대표적으로 System.out.printf( ) 를사용 3 표준입출력 표준출력 : System.out.printlf() 4 표준입출력 Example 01 public static void

More information

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a 6 장복사생성자 객체의생성과대입객체의값에의한전달복사생성자디폴트복사생성자복사생성자의재정의객체의값에의한반환임시객체 C++ 프로그래밍입문 1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y;

More information

쉽게

쉽게 Power Java 제 4 장자바프로그래밍기초 이번장에서학습할내용 자바프로그램에대한기초사항을학습 자세한내용들은추후에. Hello.java 프로그램 주석 주석 (comment): 프로그램에대한설명을적어넣은것 3 가지타입의주석 클래스 클래스 (class): 객체를만드는설계도 ( 추후에학습 ) 자바프로그램은클래스들로구성된다. 그림 4-1. 자바프로그램의구조 클래스정의

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

슬라이드 1

슬라이드 1 - 1 - 전자정부모바일표준프레임워크실습 LAB 개발환경 실습목차 LAB 1-1 모바일프로젝트생성실습 LAB 1-2 모바일사이트템플릿프로젝트생성실습 LAB 1-3 모바일공통컴포넌트생성및조립도구실습 - 2 - LAB 1-1 모바일프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new Mobile Project 메뉴를선택한다.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 7 장클래스와객체 이번장에서학습할내용 객체지향이란? 객체 메시지 클래스 객체지향의장점 String 클래스 객체지향개념을완벽하게이해해야만객체지향설계의이점을활용할수있다. 실제세계는객체로이루어진다. 객체지향이란? 실제세계를모델링하여소프트웨어를개발하는방법 절차지향과객체지향 절차지향프로그래밍 (procedural programming): 문제를해결하는절차를중요하게생각하는방법

More information

빅데이터분산컴퓨팅-5-수정

빅데이터분산컴퓨팅-5-수정 Apache Hive 빅데이터분산컴퓨팅 박영택 Apache Hive 개요 Apache Hive 는 MapReduce 기반의 High-level abstraction HiveQL은 SQL-like 언어를사용 Hadoop 클러스터에서 MapReduce 잡을생성함 Facebook 에서데이터웨어하우스를위해개발되었음 현재는오픈소스인 Apache 프로젝트 Hive 유저를위한

More information

슬라이드 1

슬라이드 1 UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)

More information

슬라이드 1

슬라이드 1 전자정부개발프레임워크 1 일차실습 LAB 개발환경 - 1 - 실습목차 LAB 1-1 프로젝트생성실습 LAB 1-2 Code Generation 실습 LAB 1-3 DBIO 실습 ( 별첨 ) LAB 1-4 공통컴포넌트생성및조립도구실습 LAB 1-5 템플릿프로젝트생성실습 - 2 - LAB 1-1 프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new

More information

rmi_박준용_final.PDF

rmi_박준용_final.PDF (RMI) - JSTORM http://wwwjstormpekr (RMI)- Document title: Document file name: Revision number: Issued by: Document Information (RMI)- rmi finaldoc Issue Date: Status:

More information

JUNIT 실습및발표

JUNIT 실습및발표 JUNIT 실습및발표 JUNIT 접속 www.junit.org DownLoad JUnit JavaDoc API Document 를참조 JUNIT 4.8.1 다운로드 설치파일 (jar 파일 ) 을다운로드 CLASSPATH 를설정 환경변수에서설정 실행할클래스에서 import JUnit 설치하기 테스트실행주석 @Test Test 를실행할 method 앞에붙임 expected

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 11 장상속 이번장에서학습할내용 상속이란? 상속의사용 메소드재정의 접근지정자 상속과생성자 Object 클래스 종단클래스 상속을코드를재사용하기위한중요한기법입니다. 상속이란? 상속의개념은현실세계에도존재한다. 상속의장점 상속의장점 상속을통하여기존클래스의필드와메소드를재사용 기존클래스의일부변경도가능 상속을이용하게되면복잡한 GUI 프로그램을순식간에작성

More information

Java ...

Java ... 컴퓨터언어 1 Java 제어문 조성일 조건문 : if, switch 어떠한조건을조사하여각기다른명령을실행 if 문, switch 문 if 문 if - else 문형식 if 문형식 if ( 조건식 ) { 명령문 1; 명령문 2;... if ( 조건식 ) { 명령문 1; 명령문 2;... else { 명령문 a; 명령문 b;... 예제 1 정수를입력받아짝수와홀수를판별하는프로그램을작성하시오.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 인터페이스 배효철 th1g@nate.com 1 목차 인터페이스의역할 인터페이스선언 인터페이스구현 인터페이스사용 타입변환과다형성 인터페이스상속 디폴트메소드와인터페이스확장 2 인터페이스의역할 인터페이스란? 개발코드와객체가서로통신하는접점 개발코드는인터페이스의메소드만알고있으면 OK 인터페이스의역할 개발코드가객체에종속되지않게 -> 객체교체할수있도록하는역할 개발코드변경없이리턴값또는실행내용이다양해질수있음

More information

PowerPoint Presentation

PowerPoint Presentation 자바프로그래밍 1 클래스와메소드심층연구 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 접근제어 class A { private int a; int b; public int c; // 전용 // 디폴트 // 공용 public class Test { public static void main(string args[]) { A obj = new

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 예외처리 배효철 th1g@nate.com 1 목차 예외와예외클래스 실행예외 예외처리코드 예외종류에따른처리코드 자동리소스닫기 예외처리떠넘기기 사용자정의예외와예외발생 예외와예외클래스 구문오류 예외와예외클래스 구문오류가없는데실행시오류가발생하는경우 예외와예외클래스 import java.util.scanner; public class ExceptionExample1

More information

Spring Boot

Spring Boot 스프링부트 (Spring Boot) 1. 스프링부트 (Spring Boot)... 2 1-1. Spring Boot 소개... 2 1-2. Spring Boot & Maven... 2 1-3. Spring Boot & Gradle... 3 1-4. Writing the code(spring Boot main)... 4 1-5. Writing the code(commandlinerunner)...

More information

TEST BANK & SOLUTION

TEST BANK & SOLUTION TEST BANK & SOLUTION 어서와자바는처음이지!" 를강의교재로채택해주셔서감사드립니다. 본문제집을만드는데나름대로노력을기울였으나제가가진지식의한계로말미암아잘못된부분이있을것으로사료됩니다. 잘못된부분을발견하시면 chunik@sch.ac.kr로연락주시면더좋은책을만드는데소중하게사용하겠습니다. 다시한번감사드립니다. 1. 자바언어에서지원되는 8 가지의기초자료형은무엇인가?

More information

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63234C0E520C0D4C3E2B7C228B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 24 장입출력 이번장에서학습할내용 스트림이란? 스트림의분류 바이트스트림 문자스트림 형식입출력 명령어행에서입출력 파일입출력 스트림을이용한입출력에대하여살펴봅시다. 스트림 (stream) 스트림 (stream) 은 순서가있는데이터의연속적인흐름 이다. 스트림은입출력을물의흐름처럼간주하는것이다. 스트림들은연결될수있다. 중간점검문제 1. 자바에서는입출력을무엇이라고추상화하는가?

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 20 장패키지 이번장에서학습할내용 패키지의개념 패키지로묶는방법 패키지사용 기본패키지 유틸리티패키지 패키지는연관된클래스들을묶는기법입니다. 패키지란? 패키지 (package) : 클래스들을묶은것 자바라이브러리도패키지로구성 ( 예 ) java.net 패키지 네트워크관련라이브러리 그림 20-1. 패키지의개념 예제 패키지생성하기 Q: 만약패키지문을사용하지않은경우에는어떻게되는가?

More information

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public Chapter 9 Lab 문제정답 1. public class Circle private double radius; static final double PI=3.141592; // PI 이름으로 3.141592 로초기화된정적상수 (1) public Circle(double r) radius = r; (2) public double getradius() return

More information

FileMaker ODBC and JDBC Guide

FileMaker ODBC and JDBC Guide FileMaker 14 5 5 5 5 6 6 6 7 7 7 8 8 8 9 9 10 10 11 11 12 12 12 12 12 13 13 14 15 16 17 18 18 19 19 20 20 20 21 21 21 22 22 22 22 23 24 24 24 24 25 27 27 28 29 29 29 29 30 30 31 31 31 32 1 1 1 1 1 1 1

More information

Spring Data JPA Many To Many 양방향 관계 예제

Spring Data JPA Many To Many 양방향 관계 예제 Spring Data JPA Many To Many 양방향관계예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) 엔티티매핑 (Entity Mapping) M : N 연관관계 사원 (Sawon), 취미 (Hobby) 는다 : 다관계이다. 사원은여러취미를가질수있고, 하나의취미역시여러사원에할당될수있기때문이다. 보통관계형 DB 에서는다 : 다관계는 1

More information

NoSQL

NoSQL MongoDB Daum Communications NoSQL Using Java Java VM, GC Low Scalability Using C Write speed Auto Sharding High Scalability Using Erlang Read/Update MapReduce R/U MR Cassandra Good Very Good MongoDB Good

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 오류처리 손시운 ssw5176@kangwon.ac.kr 오류메시지를분석한다. 오류메시지에서많은내용을알수있다. 2 디버깅 디버거를사용하면프로그램에서쉽게오류를감지하고진단할수있다. 디버거는중단점을설정하여서프로그램의실행을제어할수있으며문장 단위로실행하거나변수의값을살펴볼수있다. 3 이클립스에서디버깅 4 이클립스에서디버깅 5 이클립스의디버깅명령어 6 예외처리

More information