달력

102018  이전 다음

  •  
  • 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
  •  
  •  
  •  
에 선임이 DB 데이타를 가져오는 java 프로그램을 선임이 만들었는데, oracle에서만 실행이 되었습니다.

그래서 MySql, Oracle, MSSql에서 유동적으로 동작하는 프로그램을만들어보자 해서 만들어보았고 혹시나~!!!
정말 혹시나~!! 이것이 필요한 사람이 있을지도 모른다는 생각에 이렇게 글을 올립니다.

이것의 주용도는 C로 개발하는 프로그램에서 DB의 데이타를 가져오는 기능이 있어야하는데 이 부분을 담당합니다.

C에서는 아래와 같이 DB 데이타를 가공 및 저장 합니다.


실행 방법은 다음과 같습니다.

java -jar DBManager2010.jar [config path] [SQL Query] [option -c|-f|-u|-uf|-unf|-d]  [input Filepath]

---------------------------

SQL>desc dbtest

  id       Number(20)

name varchar(30)

 grade  Number(20)

----------------------------

========================

input.txt


name    id    grade

날리지큐브    1    00111
검색연구소    2    1733
강한구    3    1231
서서희    4    3214321
이주호    5    3531

========================

각 옵션에 대한 예제

java -jar DBManager2010.jar mssqlDB.conf  "select * from DBTEST" -c

java -jar DBManager2010.jar mssqlDB.conf  "select * from DBTEST" -f c:\getdb.txt

java -jar DBManager2010.jar mssqlDB.conf  "delete from DBTEST" -d

java -jar DBManager2010.jar mssqlDB.conf  "insert into DBTEST values('id', 'name', 'grade')" -u

java-jar DBManager2010.jar mssqlDB.conf  "insert into DBTESTvalues('<#id>;', <#'name>;', '<#grade>;')" -ufinput.txt

java-jar DBManager2010.jar mssqlDB.conf  "insert into DBTESTvalues('<#id>;', <#'name>;', '<#grade>;')" -unf input.txt       

(-uf와 같지만 input.txt에서 필드명이 없이 데이타만 존재, 예제의 경우 id, name, grade순으로 차례대로 데이타가 나열되어있다고 가정하고 쿼리문 생성및 실행)


주의사항 

SQL은 "select~~~" 과 같이 쌍따옴표로 감싸줘야합니다.

SQL  마지막에 세미콜론은 하지 않습니다.

insert나 update할때 실제 데이타를 입력할때는 쌍따옴표가 아니라 혿따옴표로 해야합니다.

간단한 쿼리문 실행을 위해 만들었기 때문에 프로시져나 복잡한 조인은 안됩니다.

사용하시고 버그나 실행이 안되는 부분, 이거 됐으면 좋겠다~ 라는 부분이 있으면 말씀해주세요.
개발 입문 단계라 많이 부족합니다. 좋은 의견 부탁드려요~~

DBManager2010.jar

KC_DBManager.zip



======================2010.12.08 추가사항==================
네가지가 수정되었습니다.         필드별 인코딩, null 데이타 입력, argument 변경 기능 추가입니다.

우선 필드별 인코딩을 보겠습니다.
@e는 euc-kr로 인코딩 @u는 utf-8로 인코딩한후 데이타를 삽입합니다.
인코딩할 필드 데이타  <#~~~>;  에서 세미콜론 다음에 @e, @u를 적어주시면 됩니다.




다음은 아래와 같은 데이타를 입력할때 null로 데이타를 입력하게 됩니다 전에는 이건 가정을 안하고 진행을 했네요;;
아래와 같이 필드가 5개인데, 데이타가 중간중간 비는경우. . . 에 대해 처리를 했습니다.




다음은 argument중 option을 없앴습니다. 기존에는 실행문에서 SQL문 다음에 -c, -u, -uf같은 옵션을 주었지만, 이젠 안줘도 됩니다.  아래와 같이 DML문을 실행하면 되겠습니다.

KC_DBManager2010.jar

소스는 안올릴거에요. 관심 좀 달라는 의미......ㅋㅋㅋㅋㅋㅋㅋ
Posted by 오산돌구
TAG