본문 바로가기

DB (DataBase) (국비)16

MySQL에서 Oracle로 이관 하기 (MySQL to Oracle Migration) https://hwanii96.tistory.com/320 MySQL에서 Oracle로 이관 하기 (MySQL to Oracle Migration) 0. 준비물 1) Oracle (아무 버전) 2) Oracle SQL Developer 3) mysql-connector-java-X.x.xx.jar 1. 기존에 DBMS를 MySQL로 사용 했었는데, Oracle 로 변경 하려고 한다. MySQL에 존재하는 테이블을 Oracle로 이관 하기 위해서는 hwanii96.tistory.com 2023. 8. 5.
Oracle 로 DBMS 변경 하기 https://hwanii96.tistory.com/310 Oracle 로 DBMS 변경 하기 1. 오라클 설치 하기 2. 설치 하고 cmd 열기 3. cmd 창에 sqlplus sys/oracle as sysdba 입력 4. 계정 만들기 CREATE USER HWAN IDENTIFIED BY 1234 ACCOUNT UNLOCK; 잘되면, User created 가 뜬다. 5. 권한 주기 GRANT CONNECT, RESOURCE TO hwanii96.tistory.com 2023. 8. 5.
PreparedStatement (향상된 Statement) JDBC 인터페이스를 구현할 때, Statement 객체를 사용했었다. 이 Statement 클래스의 하위 클래스로 PreparedStatement 라는 클래스가 존재 한다. 결론부터 말하면, 다음과 같은 특징을 가진다. 1. 문법상 자바의 개입이 사라진다. VO 객체 인자의 정보를 가져오는식으로 코드를 구현하지 않는 문법 & 로직이 되어서, 자바의 개입이 사라진다는 의미 이다. 2. 그래서, 모든 SQL 구문이 자바의 개입이 사라지기에, Model의 DAO 클래스 내부에 최상단으로 배치를 하여 높은 응집도를 실현 시킬 수 있다. 3. 최상단 배치를 하고, 각 비즈니스메서드들이 해당하는 SQL 구문을 사용할 수 있어야 하므로, 클래스 변수로 만들어주기 위해 키워드로 static을 붙혀준다. 이클립스를 통.. 2023. 6. 13.
용이한 유지보수 및 편의성을 위해 만든 VO의 멤버변수 개념 1. DB의 테이블 내부에는 없는 칼럼명 인데, 코드 작성시 편의성을 위해서 JAVA에서 어떠한 VO 클래스 내부에 멤버변수를 만들 수 있다. 2. 기존에 기능을 구현할 때, VO의 사용하지 않는 인자에 어떠한 조건값을 넣어서 (SearchCondition), == KeyWord Controller가 Model 에게 VO 객체를 보내서 Model이 기능을 실행하도록 했었다. 하지만, 만약에, 프로그램의 기능이 많으면 어떻게 될까 ? VO 객체의 사용 가능한 인자의 수가 제한적이기 때문에, 기능 구현이 어렵게 될 수도 있다. 뿐만아니라, 어떤 인자가 비어있는지를 파악하기도 어려울 수 있게 될것이다. == 가독성이 떨어져 코드의 의도를 파악하기 어려움. 3. 따라서, VO 클래스에 SearchConditio.. 2023. 6. 12.
JDBC 필수 요소 4가지 1. JDBC (Java Database Connectivity) ? JDBC 인터페이스를 구현하면 데이터베이스에 연결 하고, SQL 쿼리를 실행하고, 데이터를 조작할 수 있다. 2. JDBC 인터페이스를 구현하기 위한 필수 단계는 아래와 같다. 1) Java 코드에서 필요한 JDBC 패키지를 가져온다. 또한 아래에서 로직을 구현할 때 클래스를 사용해야 하는데, 이게 필수적으로 필요한 4가지 클래스 이다. Class.forName() Connection Statement ResultSet 위의 4가지 클래스가 일반적으로 사용되는 클래스 이다. 2) JDBC 드라이버를 로드 한다. 데이터베이스에 대한 연결을 설정하기 전에 연결하려는 데이터베이스에 적합한 JDBC 드라이버를 로드 해야 한다. 드라이버 클래스.. 2023. 6. 11.
수업 메모 [ 23.06.09 ] 1. 크롤링은 샘플 데이터를 만드는것이기 때문에 Model이 한다. 그런데, 종종 현업에서 대규모 프로젝트의 경우 Model이 작업해야할 데이터베이스의 양이 너무 많아서 Controller가 크롤링을 대신 하는 경우도 있다. 이것은 회사 문화 차이 이다. 2. 함수 (메서드) 실행이 오로지 목적인 클래스 이라면, 멤버변수가 필요 없다. 이 개념은, 객체화를 해서 객체를 만들어 내는데 전혀 관심이 없는 상황이라 그렇다. (객체로 무언가를 하는 상황이 아니다) 따라서 이런 경우, 함수 앞에 static 키워드를 붙혀서 객체와 무관한 함수로 선언한다. == 클래스 메서드 (static 메서드) 이외에도, 수많은 클래스 메서드들이 존재하는데, 객체와 무관한 함수들을 판단하는 힘을 가지면 .. 2023. 6. 10.
next() 메서드 위의 next() 메서드를 보자. resultSet 참조변수는 DB에서 가져온 다수의 영화 데이터 "들" 이다. 왜냐하면, executeQuery(sql_SELECTALL) 메서드의 인자를 보면 SELECT NUM,NAME,ODATE FROM MOVIE 이다. MOVIE 라는 이름의 테이블에서 칼럼명 NUM,NAME,ODATE의 모든 데이터를 가져오겠다는 말. while문이 참일때 계속 무한히 반복 한다. 즉, resultSet (영화 데이터 들)이 없으면 false 가 되고 while문이 종료 된다. 이때, next() 메서드는 pointer 라는 개념이 존재 한다. 영화 데이터 "들" 에서 영화 데이터 "하나하나"를 포인터가 가리키면서 확인 한다. 하나하나 가리키면서 NUM 이라는 칼럼명을 가진게 있.. 2023. 6. 9.
JDBC 모듈화 관련 개념 위는 JDBC를 할때 진행해야하는 4가지 순서의 예시이고, 자세한 내용은 아래에서 다루도록 하겠다. 위와 같이 JDBC를 이용해서 프로그래밍을 할 때, CRUD 메서드를 Model 에서 작성할 때 반복적인 코드를 작성하게 된다. 그래서 아래와 같이 모듈화를 진행 할 수 있고, 이러한 공통의 로직을 모듈화한 클래스를 Util 클래스 라고 부른다. 이렇게 모듈화를 진행했을 때 위와 같은 장점을 가지게 된다. 1) 유지보수 용이 2) 코드 재사용성 증가 3) 중복코드 최소화 4) 오류의 파급효과 줄어듦 5) 개발 시간과 개발 비용 단축 6) 영업이익 증가 아래는 Util 클래스를 이클립스를 통해 구현한 모습 이다. 1. 위의 상수화된 변수들은 높은 응집도와 유지보수의 편리함을 위해 최상단에 위치 하는게 좋다... 2023. 6. 9.
JDBC 연습 Class.forName(); 사용 예시는 아래와 같다. 2023. 6. 8.