블로그 이미지
niah_lawliet

Notice

Recent Comment

Recent Trackback

Archive

calendar

  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      
  • 57,589total
  • 2today
  • 27yesterday
2012/04/15 18:43 Java/Basic


이번 포스팅에서는 데이터베이스를 구축하는 툴인 'MySQL WorkBench CE'를 사용하는 방법과 'Java'와 연동하는 방법을 다룹니다.



1. MySQL WorkBench CE


기존에는 MySQL을 사용할 때, 'MySQL Command Line'에 명령어를 입력하여 데이터베이스를 제어합니다.



어떤가요? 조금 답답해보인다고 생각이 듭니다. 요즘에 나오는 프로그램처럼 예쁘지도 않고 직관적이지도 않구요 .. :-(

무엇보다도 기능을 사용하기 위해서는 모든 명령어를 숙지하고 있어야 합니다.


그래서 보다 MySQL을 편하게 사용할 수 있도록, MySQL에서 제공하는 'MySQL Workbench CE'를 사용하도록 해봅시다.



'MySQL Workbench'는 기존 명령 프롬프트 프로그램에 비해서 보다 직관적이고 사용하기 쉽게 구성되어 있습니다.


[Schema 생성]

→ 커넥션 이름을 작성하고 'OK' 버튼을 클릭합니다.



[Table 생성]

→ 테이블을 생성하고 다음과 같이 테이블을 구성합니다.

    테이블의 이름을 지정하고 데이터를 구성하는 테이블을 아래와 같이 생성하며, 기본값을 다음과 같이 준 후, 'Apply' 버튼을 눌러 테이블을 생성합니다.




[Data 생성]

→ 'data_table' 우클릭하고 값을 추가한 후, 'Apply' 버튼을 눌러 데이터를 추가합니다.


 

위의 과정을 통해서 다음과 같은 데이터 레코드가 완성되었습니다.


 ID

 Name

 Address

   Cursor  >  BOF: Begin of File

 10

Niah

NY 

 20

Lawliet 

LA 

                  EOF: End of File

 


2. JDBC Programming


'JDBC - Java Database Connectivity'는 'Java'로 작성한 프로그램과 관계형 데이터 원본에 대한 인터페이스로,

관계형 데이터베이스에 접근하는 방법SQL 명령어를 수행할 수 있게 해주는 라이브러리이며, 'java.sql' 패키지에 의해 구현됩니다.



'JDBC Library'의 구조는 다음과 같습니다.





[Class<?> Class.forName(String className)]

→ 클래스의 이름을 매개 변수에 전달하여 클래스에 대한 정보를 동적으로 전달하는 메서드입니다.


[Connection DriverManager.getConnection(String url, String user, String password)]

→ 접속하고자 하는 서비스의 'URL - Database Type + IP Address + Port number + Schema name', 'user name', 'password'를 주고 'Connection' 객체를 얻습니다.


[Statement createStatement(): Connection]

→ SQL문을 처리하기 위한 'Statement' 객체를 생성합니다.


[ResultSet executeQuery(String sql): Statement]

→ 문자열 형태로 전달된 Query를 실행합니다.



[boolean next(): ResultSet]

→ 다음 레코드로 커서를 이동합니다. 다음 레코드가 없으면, 'false'를 반환합니다.


[int getInt(int columnIndex): ResultSet]

→ 현재 커서의 위치와 열 인덱스가 가리키는 정수형 데이터를 반환합니다.


[String getString(int columnIndex): ResultSet]

→ 현재 커서의 위치와 열 인덱스가 가리키는 문자열 데이터를 반환합니다.



다음은 위의 메서드를 사용하여 데이터베이스에 접근하는 프로그램입니다.




+ Additional SQL Query - Modification for Data record


[delete from [table_name] where [Condition]; - delete from data_table where Name='Niah';]

→ 조건에 맞는 데이터 레코드를 삭제합니다.


[insert into [table_name] values (Data record list); - insert into data_table values (30, 'Xiah', 'Xirdalan');]

→ 해당 테이블에 데이터 레코드를 삽입합니다.


[select column_name_1, column_name2, ..., column_name_n from [table_name] where [Condition]]

→ 조건에 맞는 데이터 레코드를 'ResultSet' 객체에 반환합니다.


[update [table_name] SET column_name1 = value1, column_name2 = value2, ..., column_namen = valuen where [Condition]]

→ 데이터 레코드를 갱신합니다.



+ Additional SQL Query - Modification for Table


[alter table [table_name] alternation_1, alternation_2, ..., alternation_n;]

→ 테이블의 내용을 수정합니다.


 Alternation

Content 

 Add Column

레코드의 열을 추가합니다. 

 Add Index

인덱스를 추가합니다. 

 Drop Column

레코드의 열을 삭제합니다. 

 Drop Index

인덱스를 제거합니다. 

 Modifiy Column

열 정보를 수정합니다. 


[drop table [table_name]; - drop table data_table;]

→ 데이터 테이블을 삭제합니다.



+ Additional JDBC APIs


[boolean previous(): ResultSet]

→ 커서가 위의 레코드를 가리키도록 합니다.


[boolean first(): ResultSet]

→ 커서가 최상위의 레코드를 가리키도록 합니다.


[boolean last(): ResultSet]

→ 커서가 최하위의 레코드를 가리키도록 합니다.



[int getInt(String columnLabel): ResultSet]

→ 현재 커서의 위치와 열의 라벨이 가리키는 정수형 데이터를 반환합니다.


[String getString(String columnLabel): ResultSet]

→ 현재 커서의 위치와 열의 라벨이 가리키는 문자열 데이터를 반환합니다.



위에서 설명한 쿼리 문이 복잡하기는 합니다. 그렇기 때문에 'MySQL Workbench CE'에 대해 소개한 것이기도 하구요 : -)


사실 스키마에서부터 테이블 및 레코드를 생성 및 제어를 하면 실제 쿼리 문을 보여주는 팝업창이 나타납니다.

그 팝업창으로부터 실제 적용 사례를 볼 수 있으니, 프로그래밍에 사용할 때 참조하시기 바랍니다.


이번 포스팅은 여기까지 하도록 하겠습니다 :-)





저작자 표시
Creative Commons License
Creative Commons License

'Java > Basic' 카테고리의 다른 글

25. Java - XML Parsing: DOM / SAX  (4) 2012/04/22
24. Java - Database with JDBC Programming  (0) 2012/04/15
23. Java - Database with MySQL  (0) 2012/04/15
22. Java - Socket Programming with Java  (0) 2012/04/07
21. Java - Concept of network  (0) 2012/04/07
20. Java - File Input / Output  (0) 2012/04/06
posted by N niah_lawliet
 <PREV 1 ... 9 10 11 12 13 14 15 16 17 ... 60    NEXT>

티스토리 툴바