Skip to content

[Object-Oriented Programming] Implementing Database Transactions in an Object-Oriented Language (JAVA)

Notifications You must be signed in to change notification settings

jonique98/OOP-SSU

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

java-project

객체지향 프로그래밍 과제 165 / 200

과제 설명

csv 파일을 읽고 구분자(,)를 기준으로 테이블을 생성 데이터베이스 트랜잭션 구현 (ex. SELECT(ROW, COLUMN), UPDATE, DELETE, INSERT, INNERJOIN, OUTERJOIN 등)

ex) books.csv

id,title,type,author_id,editor_id,translator_id
1,Time to Grow Up!,original,11,21,
2,Your Trip,translated,15,22,32
3,Lovely Love,original,14,24,
4,Dream Your Life,original,11,24,
5,Oranges,translated,12,25,31
6,Your Happy Life,translated,15,22,33
7,Applied AI,translated,13,23,34
8,My Last Book,original,11,28,

구조

+ rsc --- 리소스 파일
  └ authors.csv
  └ books.csv
  └ editors.csv
  └ translators.csv

+ src
  + database
    └ Column.java ------------- 컬럼 단위로 데이터를 관리한느 메소드를 정의한 interface
	└ ColumnImpl.java ----------- Column.java를 구현한 클래스
	└ Database.java ------------- DDL 위주 명령어를 구현한 class (ex. CREATE TABLE)
	└ Joinable.java ------------- JOIN 관련 메소드가 정의된 interface
	└ JoinableImpl.java ---------- Joinable.java를 구현한 클래스
	└ Table.java ------------------ DML 위주 명령어를 구현한 class
  + test
    └ Test.java ------------------ 테스트 코드

TEST 결과

Database.showtables() : 데이터베이스의 테이블 목록 출력

Table.show() : 테이블의 데이터 출력

Table.describe() : 테이블 메타 데이터 출력

스크린샷 2024-01-01 16 50 26

Table.head() : 테이블의 0-5번 줄(행) 데이터

Table.tail() : 테이블의 마지막 5번 줄(행) 데이터

스크린샷 2024-01-01 16 52 01

Table.selectRows(beginIndex, endIndex) : 테이블의 beginIndex부터 endIndex까지의 데이터로 구성된 테이블 반환

Table.selectRowsAt(...index) : 테이블의 index에 해당하는 데이터로만 구성된 테이블 반환

Table.selectColumns(beginIndex, endIndex) : 테이블의 beginIndex부터 endIndex까지의 컬럼으로 구성된 테이블 반환

Table.selectColumnsAt(...index) : 테이블의 index에 해당하는 컬럼으로만 구성된 테이블 반환

스크린샷 2024-01-01 16 52 29

Table.sort(byINdexOfColumn, isAscending, isNullFirst) : 테이블의 byIndexOfColumn 컬럼을 기준으로 정렬

스크린샷 2024-01-01 16 52 44

Table.crossJoin(rightTable) : 테이블과 rightTable의 모든 데이터를 조합한 테이블 반환(rightTable이 오른쪽)

스크린샷 2024-01-01 16 53 35

Table innerJoin(Table rightTable, List joinColumns): 두번째 인자 columns르 기준으로 두 테이블을 조인

스크린샷 2024-01-01 16 53 44

랜던한 row, column 인덱스를 selectedRowsAt, selectedColumnsAt을 통해 선택한 후 출력을 확인하고

setValue 메소드를 통해 column의 head값을 변경

스크린샷 2024-01-01 16 56 03

About

[Object-Oriented Programming] Implementing Database Transactions in an Object-Oriented Language (JAVA)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages