내가 개발한 DBManager
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할때 실제 데이타를 입력할때는 쌍따옴표가 아니라 혿따옴표로 해야합니다.
사용하시고 버그나 실행이 안되는 부분, 이거 됐으면 좋겠다~ 라는 부분이 있으면 말씀해주세요.
개발 입문 단계라 많이 부족합니다. 좋은 의견 부탁드려요~~
======================2010.12.08 추가사항==================
네가지가 수정되었습니다. 필드별 인코딩, null 데이타 입력, argument 변경 기능 추가입니다.
우선 필드별 인코딩을 보겠습니다.
@e는 euc-kr로 인코딩 @u는 utf-8로 인코딩한후 데이타를 삽입합니다.
인코딩할 필드 데이타 <#~~~>; 에서 세미콜론 다음에 @e, @u를 적어주시면 됩니다.
다음은 아래와 같은 데이타를 입력할때 null로 데이타를 입력하게 됩니다 전에는 이건 가정을 안하고 진행을 했네요;;
아래와 같이 필드가 5개인데, 데이타가 중간중간 비는경우. . . 에 대해 처리를 했습니다.
다음은 argument중 option을 없앴습니다. 기존에는 실행문에서 SQL문 다음에 -c, -u, -uf같은 옵션을 주었지만, 이젠 안줘도 됩니다. 아래와 같이 DML문을 실행하면 되겠습니다.
소스는 안올릴거에요. 관심 좀 달라는 의미......ㅋㅋㅋㅋㅋㅋㅋ