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 해주면 된다.

//

SQLGate 2011년 오프라인 첫번째 제품교육SQLGate 2011년 오프라인 첫번째 제품교육

Posted at 2011. 1. 7. 16:59 | Posted in Computer Science/데이타베이스설계


이번 학기 데이타베이스설계 과목의 프로젝트를 진행하면서 유용하게 사용하였던 도구가 바로 SQLGate이다. 좋은 ISQL 도구가 없을까 찾다가 국산 제품을 찾게 되었는데 무척 마음에 든다.

학기 중에는 제품교육을 받을수가 없어서 못들었는데 이제 방학을 하였으니 가서 SQLGate의 기능을 살펴보고 싶다. 나에게 무척 좋은 기회가 될 것이라 생각한다.
//

포인터형의 Vector 클래스에 Sort 적용하기포인터형의 Vector 클래스에 Sort 적용하기

Posted at 2010. 12. 15. 22:30 | Posted in Computer Science/컴퓨터프로그래밍
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

bool compare(const int* lhs, const int* rhs)
{
	return *lhs < *rhs;
}

int main(int argc, char *argv[])
{
	vector pInt;

	unsigned int iCount = 0;


	int* a = new int(10);
	int* b = new int(5);
	int* c = new int(3);
	int* d = new int(8);
	int* e = new int(1);

	pInt.push_back( a );
	pInt.push_back( b );
	pInt.push_back( c );
	pInt.push_back( d );
	pInt.push_back( e );

	for(iCount = 0; iCount < pInt.size(); iCount++)
		cout << *pInt[iCount] << " ";

	cout << endl;

	sort( pInt.begin(), pInt.end(), compare );

	for(iCount = 0; iCount < pInt.size(); iCount++)
		cout << *pInt[iCount] << " ";

	return 0;
}

  프로젝트를 하다가 Sort는 Selection Sort를 구현한다고 STL을 사용하지 않았다. 근데 한가지 궁금증이 생겼는데 바로 포인트형을 담고 있는 Vector의 경우 어떻게 Sort를 구현할 것인가? 였다. 해답은 Sort의 세번째 인자에 있었다.

//

2010학년도 2학기 프로그래밍언어론 프로젝트2010학년도 2학기 프로그래밍언어론 프로젝트

Posted at 2010. 12. 14. 15:11 | Posted in Computer Science/프로그래밍언어론


  이번 학기 프로그래밍언어론 프로젝트는 Pascal 언어에 대한 인터프리터를 만드는 것이였다. 2010년 12월 14일 화요일 오후 2시부터 제2공학관 4층 실습실에서 DEMO를 진행하였다. DEMO를 진행하는 중 이찬근 선생님이 오셔서 잘 되냐고 물어보셨지만 선뜻 대답할 수 없었다. 참 부끄러웠다.

  Lex를 통해 어휘 분석과 토큰에 대한 Linked List를 구성하고 RDP 방식으로 Non-terminal에 대한 함수 호출을 통해 파싱을 진행하게 된다. 여기까지는 잘 구현하였다. 하지만 문제는 변수에 대한 처리 및 연산이였다. 특히 변수처리가 너무 어려웠다. -1 이라는 숫자가 있을 때 -는 기호로 1은 숫자로 인식하여 음수 기호 다음에 나오는 숫자가 진짜 음수라는 것을 알려줘야 되지만 막상 그것이 쉽지가 않았다. 이것뿐만 아니라 여러가지 어려움이 많았다.

  소위 드래곤북이라 불리는 책 표지를 보면 기사와 용에 대한 그림이 나온다. 이 책 표지를 자세히 보면 재미있다. 용의 그림에는 컴파일의 복잡도라 적혀 있고 기사의 검에는 LR파서가 적혀 있다. 물론 이번 프로젝트는 LL파서 기법을 사용하였다.

  아무튼 이번 겨울 방학의 과제가 하나 더 생겼다. 이번 겨울 방학때는 프로그래밍언어 3종 세트에 대해 Review를 하고 새로운 언어에 대한 파서를 만드는 것이다.

'Computer Science > 프로그래밍언어론' 카테고리의 다른 글

JLex 1.4.3 사용기  (0) 2010.11.08
//

2010학년도 2학기 데이타베이스설계 프로젝트 DEMO2010학년도 2학기 데이타베이스설계 프로젝트 DEMO

Posted at 2010. 12. 9. 20:23 | Posted in Computer Science/데이타베이스설계



  2010년 12월 9일 오후 06시부터 데이타베이스설계 과목 프로젝트 DEMO가 있었다. 우리 조는 5번째였으며 언제 시작하였는지 정확한 시간은 기록하지 않았다. 다만  오후 08시 20분에 종료 되었다.

  먼저 DEMO를 할 때 신기훈 조교 선생님 한분만 계셨다. 조교 선생님과 함께 시연을 하면서 몇 가지 부분을 지적받았다. 먼저 데이터베이스의 테이블을 생성할 때 정확한 타입을 사용했는지였다. 지적 받은 사항을 요약하면 다음과 같다.

1. 프로젝트에서 사용한 DBMS를 PPT에 명시하지 않았다.
2. 프로젝트에서 사용한 ISQL 도구를 명시하지 않았다.
3. 소의 성별이 경우 VCHAR2(4)를 사용하였는데 '암컷'과 '수컷' 밖에 없기 때문에 CHAR(4)를 쓰는 것이 좋다.
4. 한글의 경우 한 글자가 2 Bytes를 차지 하기 때문에 VCHAR2뒤에 값이 짝수 같이 오는 것이 좋다.

  해당 데이터베이스의 사용자에 대해 설명하고 각 테이블의 DESC과 데이터 값을 몇 개씩 선택하여 보여드렸다. 마지막으로 자연질의어와 집계 함수를 사용한 SQL 문장을 입력하여 값을 확인하였다.

  벌크 데이터의 수량이 많았다면 추가 점수를 받을 수 있었는데 많이 준비하지 못해 아쉬웠다. 조교 선생님도 이 부분을 지적하셨다.

  설명 중 우리가 사용한 Triger에 대해서 설명드렸다. 소 테이블에 소가 추가될 때(INSERT INTO) 농장의 소마리수에 1씩 값이 증가한다.

  마지막 확인은 소테이블에 세 마리의 소를 추가하고 트리거의 동작 유무와 집계 함수의 동작 유무였다. 물론 조교 선생님이 다른 조를 채점하고 있는 동안 SQL 문장을 작성하였고 조교 선생님이 오시고 나서 기존 값을 보여드리고 변경된 값을 보여드렸다. 집계 함수를 사용하는 SQL 문장은 2010년에 소가 가장 많이 태어난 달을 구하는 것이였는 이것 역시 트리거와 함께 잘 동작하였다.

※ 프로젝트 DEMO시 작성한 SQL 문장은 다음과 같다.

INSERT INTO 소(소ID, 생일, 나이, 성별, 중량, 품종, 상태, 농장허가번호, 농장등록일)
VALUES(소ID.NEXTVAL, TO_DATE('2010-12-01', 'YYYY-MM-DD'), 1, '암컷', 236, '한우', '사육', 10060 , TO_DATE('2010-12-01', 'YYYY-MM-DD') );

INSERT INTO 소(소ID, 생일, 나이, 성별, 중량, 품종, 상태, 농장허가번호, 농장등록일)
VALUES(소ID.NEXTVAL, TO_DATE('2010-12-02', 'YYYY-MM-DD'), 1, '수컷', 266, '브라만종', '사육', 10060 , TO_DATE('2010-12-02', 'YYYY-MM-DD') );

INSERT INTO 소(소ID, 생일, 나이, 성별, 중량, 품종, 상태, 농장허가번호, 농장등록일)
VALUES(소ID.NEXTVAL, TO_DATE('2010-12-03', 'YYYY-MM-DD'), 1, '암컷', 300, '한우', '사육', 10060 , TO_DATE('2010-12-03', 'YYYY-MM-DD') );

 

//

Class를 이용한 18자리의 Int 자료형 구현Class를 이용한 18자리의 Int 자료형 구현

Posted at 2010. 11. 12. 13:21

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

UNLOCK!

2009학년도 소프트웨어공학 프로젝트2009학년도 소프트웨어공학 프로젝트

Posted at 2010. 11. 8. 21:13 | Posted in Computer Science/소프트웨어공학


2009학년도 소프트웨어공학 프로젝트는 Requirement Management Tool을 만드는 것이였다. 언어는 JAVA를 사용하였고 GUI 구현을 위해 Swing을 사용하였다. 프로젝트 수행을 통해 JAVA에 대한 지식을 많이 얻었다.
//

JLex 1.4.3 사용기JLex 1.4.3 사용기

Posted at 2010. 11. 8. 20:56 | Posted in Computer Science/프로그래밍언어론


프로그래밍언어론의 프로젝트는 인터프리터를 만드는 것이다. 그런게 이것을 아무리 생각해도 모르겠다. 내가 실제 프로그래밍언어론에서 배운것이 활용이 안되는 것 같다. 일단은 JFlex 1.4.3 버젼을 다운로드 받고 실행시켜 보았다. 내가 어떤 JFlex 문법으로 작성된 파일을 주면 Yylex.java 라는 파일이 실행된다.

javac Yylex.java 파일을 컴파일 하는 순간 Yytoken.java 파일이 없다는 오류 메시지가 출력되었다.

Yytoken.java 파일은 Yylex.java 파일과 관련되어 있는데 입력받은 문자열을 토큰 단위로 나누고, 해당하는 토큰의 함수를 호출할 때 Yytoken.java 파일이 필요하다는 것을 알았다.

뭔가 감이 오기 시작하였다. JFlex 문법에 맞게 작성을 하면 나만의 어휘분석기를 만들 수 있다.
//

2010학년도 데이타베이스설계 프로젝트 팀원2010학년도 데이타베이스설계 프로젝트 팀원

Posted at 2010. 11. 8. 19:22

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

UNLOCK!