Fat Jar Eclipse Plug-InFat Jar Eclipse Plug-In

Posted at 2011. 5. 7. 19:46 | Posted in Computer Science/DB시스템및프로그래밍


참조하는 모든 라이브러리를 포함하여 프로젝트를 하나의 "덩치큰(fat)" 실행가능한 JAR 파일로 만들어 주는 이클립스 플러그인이다. 레퍼런스는 프로젝트 설정으로부터 획득되어지는데, 그래서 아무런 메뉴얼 설정이 필요하지 않다.

제작자의 홈페이지에 있는 문장을 그대로 해석하니 조금 이상할 수 있다. 제작자가 말하는 fat의 의미란 실행가능한 형태의 JAR 파일 내부에 참조되고 있는 외부 JAR 파일을 같이 묶어서 하나의 JAR 파일로 만들어 준다는 것이다. 또한 프로그램에서 사용되는 아이콘도 같이 묶어 주어 반드시 필요하다.

만약 실행에 필요한 JAR 파일이 포함되어 있지 않다면 그러니깐 단순히 실행가능한 JAR 파일로 추출(Export)한 경우 프로그램이 실행되지 않는다.

http://fjep.sourceforge.net/


'Computer Science > DB시스템및프로그래밍' 카테고리의 다른 글

DB프로그래밍의 교훈  (0) 2011.05.07
SQL Injector  (2) 2011.05.03
Mass SQL Injector  (0) 2011.05.03
DB시스템및프로그래밍 프로젝트 첫 모임  (2) 2011.04.08
XML 관련 문제 풀이 정리  (0) 2011.04.04
//

DB프로그래밍의 교훈DB프로그래밍의 교훈

Posted at 2011. 5. 7. 19:33 | Posted in Computer Science/DB시스템및프로그래밍

JDK 1.6.0_24 + ojdbc14.jar 환경에서 데이터베이스 프로그래밍을 하면서 여러 가지 문제점을 알 수 있었다. 이 문제점을 알기 위해 너무 많은 시간을 소비하였다. 특히 자바 플랫폼 기반의 데이터베이스 프로그래밍과 관련된 서적이 거의 없기 때문에(또한 모든 것을 책에서 다룰 수 없다.) 이러한 문제가 발생하리라 생각하지 못하였다.

1. SELECT, INSERT, UPDATE, DELETE 문장은 executeQuery, executeUpdate 메소드로 받을 수 있다.
처음 생각한 것은 무조건 데이터를 조회할 때는 executeQuery 메소드를 사용하고 데이터의 변경을 가할 때는 executeUpdate 메소드를 사용할 것이라 생각하였는데 INSERT 문장이라도 Static SQL(Compile Time 완성)이라면 executeQuery 메소드를 사용할 수 있다.

2. 커밋의 중요성
하나의 컴퓨터에서 오라클 서버를 동작시키고 클라이언트를 실행시키며 프로그래밍을 하였다. 대량의 SQL 문장이 아닌 단독 문장으로 테스트를 수행하며 프로그래밍하였다. 문제는 클라이언트로 데이터를 삽입하고 DELETE 문장을 이용하고 다시 클라이언트로 데이터를 삽입하면 위의 화면처럼 무한 대기 상태에 진입한다. 정말 이 문제때문에 고생하였다. 처음 내가 생각한 것은 네트워크 상에서 세션 성립 문제일 것이라 생각을 하였다. 대부분 close 메소드로 종료하지 않았고 비정상적인 종료로 인해 무한 대기 상태에 진입하는 것이라 생각하였다. 하지만 알고 보니 DELETE 문장을 수행하고 다시 데이터베이스에 접속하여 SELECT 문장을 수행하니 지워지지 않고 그대로 있었다. 자동 커밋 되리라 생각했는데 자동 커밋이 꺼져 있었다. 참으로 황당하였다. 아무튼 변경을 가하고 나서는 COMMIT을 반드시 수행하여야 한다.

'Computer Science > DB시스템및프로그래밍' 카테고리의 다른 글

Fat Jar Eclipse Plug-In  (0) 2011.05.07
SQL Injector  (2) 2011.05.03
Mass SQL Injector  (0) 2011.05.03
DB시스템및프로그래밍 프로젝트 첫 모임  (2) 2011.04.08
XML 관련 문제 풀이 정리  (0) 2011.04.04
//

SQL InjectorSQL Injector

Posted at 2011. 5. 3. 20:41 | Posted in Computer Science/DB시스템및프로그래밍

이번 주 내로 SQL Injector 완성 예정
//

Mass SQL InjectorMass SQL Injector

Posted at 2011. 5. 3. 18:13 | Posted in Computer Science/DB시스템및프로그래밍

지금 만들고 있는 프로그램은 대용량 DBMS 테스트를 위한 Mass SQL Injector 이다. 프로그램의 이름이 해킹 도구의 이름과 유사하여 작명에 대한 고민을 하였다. SQL Injection 하는 해킹 도구는 아니지만 대용량 데이터를 삽입하는 의미에서 Mass SQL Injector 라고 지었다.

일단은 프로그램을 실행하게 되면 데이타베이스 정보를 입력받게 된다. Oracle DBMS의 기본 포트 번호인 1521과 기본 서비스명인 ORCL은 미리 입력해 놓고 서버 IP와 사용자명 그리고 패스워드를 입력받게 구성하였다. 확인 버튼을 누르게 되면 데이타베이스에 접속을 하게 된다.

이제 구성해야 될 부분은 데이타베이스 접속 정보를 담는 Connection 클래스를 메인 프로그램으로 넘겨주는 작업이다. 메인 프로그램의 생성자에서 Connection 클래스를 받도록 하여야 한다.
//

DB시스템및프로그래밍 프로젝트 첫 모임DB시스템및프로그래밍 프로젝트 첫 모임

Posted at 2011. 4. 8. 14:32 | Posted in Computer Science/DB시스템및프로그래밍


1. 일시
2011년 4월 8일 금요일 17:00 ~ 18:00

2. 장소
중앙대학교 공과대학 제2공학관 6층 515 강의실

2. 대상자
DB시스템및프로그래밍 과목을 수강하는 6명의 학생

3. 모임 안건
과년도 프로젝트 설명, 조장 선정, 응용분야, 응용의 기능, DB 스키마, 질의 리스트(자연어 또는 SQL)
개발환경(DBMS, 주언어, DB API 등) : MFC(Microsoft 계열), JAVA(Oracle 계열), MVC 패턴
프로젝트 진행 일정, 역할 분배

'Computer Science > DB시스템및프로그래밍' 카테고리의 다른 글

SQL Injector  (2) 2011.05.03
Mass SQL Injector  (0) 2011.05.03
XML 관련 문제 풀이 정리  (0) 2011.04.04
HW#01 : XML 관련 문제를 풀이  (0) 2011.03.31
JDBC를 이용한 Oracle 컨넥션 설정  (0) 2011.03.09
//

XML 관련 문제 풀이 정리XML 관련 문제 풀이 정리

Posted at 2011. 4. 4. 22:16 | Posted in Computer Science/DB시스템및프로그래밍
2011년 4월 4일 13:00 ~ 14:00 DB시스템및프로그래밍

금일은 XML 관련 문제 풀이 시간을 가졌다. 이제 우리도 XML의 종결자가 될 수 있다는 기대감을 갖았다.
//

HW#01 : XML 관련 문제를 풀이HW#01 : XML 관련 문제를 풀이

Posted at 2011. 3. 31. 01:36 | Posted in Computer Science/DB시스템및프로그래밍

1. 교재 STUDENT 테이블의 내용을 바탕으로 다음 문제를 푸시오.

(a) XML로 표현

(b) DTD 작성

(c) DTD를 문서 내 삽입/별도 두 경우에 대해 문서 제시


2. STUDENT 테이블에 아래의 반구조적 특성이 있을 때 문제를 푸시오.

-dept : optional
-tel : 0개 이상 제한 없음

(a) Sno은 속성으로 하여 DTD 작성

(b) 문서 내용 제시(DTD 별도 버전)

3. 교재 대학 DB에 대한 DTD 작성

//

JDBC를 이용한 Oracle 컨넥션 설정JDBC를 이용한 Oracle 컨넥션 설정

Posted at 2011. 3. 9. 10:40 | Posted in Computer Science/DB시스템및프로그래밍
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class JDBCDemo {
	public static void main(String[] args) {
		
		Connection conn = null; // 컨넥션 연결을 위한
		
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			System.out.println("드라이버 로딩 성공");
			conn = DriverManager.getConnection("jdbc:oracle:thin:@IP_주소:1521:ORCL", "계정_이름", "계정_비밀번호"); // 컨넥션 설정
			System.out.println("데이터베이스 연결 성공");
		} catch(ClassNotFoundException cnfe) {
			System.out.println("드라이버 로딩 실패");
			cnfe.printStackTrace();
		} catch(SQLException se) {
			System.out.println("데이터베이스 연결 실패");
			se.printStackTrace();
		} finally {
			try {
				if(conn != null) {
					conn.close();
					System.out.println("데이터베이스 연결 해제 성공");
				}
			} catch(SQLException se) {
				System.out.println("데이터베이스 연결 해제 실패");
				se.printStackTrace();
			}
		}
	}
}
//

JDBC를 이용한 Oracle 연동JDBC를 이용한 Oracle 연동

Posted at 2011. 3. 9. 10:25 | Posted in Computer Science/DB시스템및프로그래밍
public class JDBCDemo {
	public static void main(String[] args) {
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			System.out.println("드라이버 로딩 성공");
		} catch(ClassNotFoundException cnfe) {
			System.out.println("드라이버 로딩 실패");
			cnfe.printStackTrace();
		}
	}
}

물론 이렇게 코딩을 하게 되면 오류가 발생한다. JDBC를 사용하기 위해서는 JDBC 드라이버를 사용하여야 한다. 이클립스의 경우 오라클 JDBC 드라이버(ojdbc14.jar)를 Include 해주면 된다.

//