전체 글 154

Java 경로(path)지정, eclipse 재설치 + ojdbc6(oracle SQL)

(주의!) 초보의 기록입니다. 학원 개강 전 사전학습을 위해 다운받았던 버전이 학원에서 쓰는 버전과 달라 어찌저찌 쓰다가 JDBC하면서 oracle SQL이랑 같이 쓰려다보니 버전이 달라서인지 자꾸 애를 먹게된다.. (파일이 import가 안되는 사태가 발생) 나같은 초보는 학원이랑 같은 환경을 구축해 놓는 게 차라리 나을 것 같다. 그래서! JAVA도 다시 깔고 eclipse도 다시 깔았다. (oracle(sql)은 학원에서 깔았던 버전을 그대로 썼다) 그것은 바로 aws java 8버전. eclipse는 그에 맞게 2020.03버전.. 1. JAVA 1) 자바 설치 https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/downloads-list.htm..

잡담 2023.08.15

#31. JDBC(Properties)

Properties를 이용하여 '동적코딩방식'을 적용한다. 기존의 자바소스코드 내부에 명시적으로 작성하였던 정적코딩방식(하드코딩)과는 다르게 외부파일을 만들어서 관리할 수 있다. => 유지보수에 용이함! Properties prop 개체를 만들면 prop.setProperties("키", "밸류"); prop.getProperties("키"); prop.store("키값", "별칭"); (키값으로 Stream을 넣어준다. new FileOutputStream("파일명") => 파일 기록) prop.load("키값"); (키값으로 Stream을 넣어준다. new FileInputStream("파일명") => 파일 읽어오기) 을 이용할 수 있다. 그래서, 1. JDBC Driver등록 구문, 내가 접속할 D..

JDBC/JDBC 수업 2023.08.14

#30. JDBC(model에 service클래스 추가), Template

Model에 MemberService 클래스를 하나 더 만들어서 Controller와 DAO의 역할을 분담해주자. 그전에, JDBC과정 중 반복적으로 쓰이는 구문들을 각각의 메소드로 정의해둘 곳을 메세지를 너무 많이 보내서 못지운대.. ORA-02292: integrity constraint (JDBC.SYS_C007242) violated - child record found TIP. 객체 생성시, try(객체생성구문) {} catch {} 이렇게 쓰면 finally{}안에 close() (자원반납) 을 따로 해주지 않아도 자동으로 close()가 됨. (주의) try안에 객체를 생성할 때 null이 아닌 값으로 초기화를 해주어야 함. ex. PreparedStatement와 ResultSet쓰고 반납..

JDBC/JDBC 수업 2023.08.11

#28. PreparedStatement

PreparedStatement : Connection객체가 가지고 있는 연결정보 DB에 SQL문을 전달하고 실행하고 결과도 받아오는 객체 - Statement(부모)와 PreparedStatement(자식) 관계 ** PreparedStatement의 특징 : SQL문을 바로 실행하지 않고 잠시 보관하는 개념 미완성된 SQL문을 먼저 전달하고 실행하기 전에 완성형태로 만든 후 실행만 함 미완성된 SQL문에 사용자가 입력한 값들이 들어갈 수 있는 공간을 ?(위치홀더)로 확보 - 차이점 1) Statement는 완성된 SQL문, PreparedStatement는 미완성된 SQL문 2) 객체 생성 시 Statement == conn.createStatement(); PreparedStatement == co..

JDBC/JDBC 수업 2023.08.09

#27. JDBC, Connection, Statement, ResultSet

------------------------------------ View ------------------------------------ 1. 사용자에게 값을 아이디를 입력받고, 사용자에게 변경할 값들을 입력받는다. 2. 값들을 Controller에게 넘겨준다. private void updateMember() { System.out.println("--- 회원 정보 변경 ---"); System.out.print("변경할 회원의 아이디를 입력해 주세요 > "); String userId = sc.nextLine(); System.out.print("새 비밀번호를 입력해 주세요 > "); String newPwd = sc.nextLine(); System.out.print("새 ..

JDBC/JDBC 수업 2023.08.08

#26. JDBC, Connection, Statement, ResultSet

26-1. 요약 JDBC를 이용하여 MVC모델을 구현할 수 있다. M (model) - VO(Value Object) VO(Value Object) => 값을 담는 역할 => DB테이블의 한 행에 대한 데이터를 기록할 수 있는 저장용 객체 유사 DTO(Data Transfer Object) DO(Domain Object) Entity bean VO 조건 1. 반드시 캡슐화를 적용 2. 모든 필드에 대한 getter/setter 메서드를 작성할 것 3. 기본생성자(필수!) 및 매개변수 생성자를 작성할 것 - DAO(Data Access Object) JDBC용 객체 - Connection : DB의 연결정보를 담고 있는 객체 - (Prepared)Statement : 해당 DB에 SQL문을 전달하고 실행한..

JDBC/JDBC 수업 2023.08.07

#25. SQL(VIEW), TCL, JDBC(JAVA에서 oracle연결)

25-1. VIEW SELECT(쿼리문)을 저장해둘 수 있는 객체 임시테이블 같은 존재(실제 데이터가 담겨있는 것은 아님!!) 1. VIEW 생성 방법 [ 표현법 ] CREATE VIEW 뷰명 AS 서브쿼리 CREATE OR REPLACE VIEW VW_EMPLOYEE AS SELECT EMP_ID, EMP_NAME, DEPT_TITLE, SALARY, NATIONAL_NAME, JOB_NAME, BONUS FROM EMPLOYEE E, DEPARTMENT, LOCATION L, NATIONAL N, JOB J WHERE DEPT_CODE = DEPT_ID AND LOCATION_ID = LOCAL_CODE AND L.NATIONAL_CODE = N.NATIONAL_CODE AND E.JOB_CODE =..

#23. DML, DDL, DCL, TCL, OBJECT(VIEW)

DML : SELECT FROM, INSERT INTO, DELETE FROM, UPDATE SET DDL : CREATE, DROP, ALTER DCL : GRANT TO, REVOKE TCL : COMMIT, ROLLBACK, SAVEPOINT 23-1. DML (DATA MANIPULATION LANGUAGE) 데이터 조작 언어 DML을 쓰고나면 꼭 트랜잭션을 해줘야 한다(COMMIT 또는 ROLLBACK) 1. INSERT : 테이블에 새로운 행을 추가하는 구문 (순서가 중요하다) 1) INSERT INTO 테이블명 VALUES(값, 값, 값, ....); INSERT INTO EMPLOYEE VALUES (900, '김개똥', '880101-255934', 'KIM_GT@kh.or.kr', '0..