본문 바로가기

JDBC

MVC패턴 - MVC 패턴- Model View Controller의 약 - Model : 데이터 처리와 관계된 업무를 담당하는 계층- View - Controller 데이터베이스 작업 전문 객체(클래스)- DAO, Data Access Object: 데이터 처리 업무 담당 객체: JDBC 관련 업무 담당 객체 - DTO, Data Transfer Object: 계층과 계층간에 데이터 전달 단위 객체: A 업무 -> DTO(데이터) -> B 업무: 데이터를 담는 상자: 데이터를 상자에 당은 후에도 수정이 가능- VO, Value Object: 계층과 계층간에 데이터 전달 단위 객체: A 업무 -> DTO(데이터) -> B 업무: 데이터를 담는 상자: 데이터를 상자에 당은 후에도 수정이 불가능 --DTO 자격조건1... 더보기
JDBC(트랜잭션) Commit/Rollback Commit - 아직 저장되지 않은 데이터를 DB에 저장하고 트랜잭션을 종료시키는 명령어Rollback - 저장 되지 않은 데이터들의 변경을 모두 취소하고 트랜잭션을 종료시키는 명령어- 이전의 Commit 상태 또는 지정된 SAVEPOINT로 복구시키는 명령어 SavePoint - 현재까지의 트랜잭션을 특정 명칭으로 지정하여 임시저장해놓는 명령어 1.오라클a. 스크립트 작업 중 사용자가 직접 commit or rollback을 할수 있따.b. 프로시저내에서 여러 작업을 하나의 논리 작업으로 묶기 위해서 사용한다. 2. 자바a. 오라클과 동일하게 트랜잭션 제어 가능 > Connection 클래스 사용 예시) 첫번째 sql은 성공, 두번쨰 sql 실패 두개를 한꺼번에 commit.. 더보기
JDBC(CallableStatement 클래스) 예제(부서별 비상 연락망) --부서별로 비상 연락망을 가져오는것[개발부]김신애 ▷ 엄용수 ▷ 이기상 ▷ 이기자 ▷ 이미성 ▷ 이상헌 ▷ 이성길 ▷ 이순애 ▷ 임수봉 ▷ 장인철 ▷ 정영희 ▷ 채정희 ▷ 홍길남 ▷ 황진이 ▷ (종료)[기획부]권옥경 ▷ 김말자 ▷ 김신제 ▷ 이영숙 ▷ 이정석 ▷ 지재환 ▷ 홍길동 ▷ (종료)[영업부]고순정 ▷ 권영미 ▷ 김미나 ▷ 김숙남 ▷ 김인수 ▷ 김정훈 ▷ 김종서 ▷ 산마루 ▷ 손인수 ▷ 양미옥 ▷ 우재옥 ▷ 유관순 ▷ 전용재 ▷ 정한나 ▷ 지수환 ▷ 홍원신 ▷ (종료)[인사부]나윤균 ▷ 박문수 ▷ 박세열 ▷ 이남신 ▷ (종료)[자재부]김싱식 ▷ 문길수 ▷ 심심해 ▷ 유영희 ▷ 이미경 ▷ 이재영 ▷ (종료)[총무부]김말숙 ▷ 김영길 ▷ 이순신 ▷ 이현숙 ▷ 정정해 ▷ 한석봉 ▷ 허경운 ▷ (종료).. 더보기
JDBC(CallableStatement 클래스) 예제(위경도 거리) **위경도를 가지고 두 곳의 거리 구하기단위 : km두 점간의 거리 = 루트((|x1-x2|)^2 + (|y1-y2|)^2) 두 포인트의 위도값의 차이 : 0.0012두 포인트의 경도간의 차이 : 0.0002두 포인트의 위도 간 실제 거리 = 0.0012*92 = 0.1104두 포인트의 경도 간 거리 = 0.0002*114 = 0.0228루트(0.01104^2 + 0.00228^2)= 루트(0.01218816 + 0.00051984)= 루트(0.012708)= 0.112730 km --프로시저 --자바 더보기
JDBC(CallableStatement 클래스) CallableStatement - SQL의 스토어드프로시저(StoredProcedure)를 실행시키기 위해 사용되는 인터페이스 StoredProcedure- query문을 하나의 파일 형태로 만들거나 데이터베이스에 저장해 놓고 함수처럼 호출해서 사용하는 것.- 연속되는 query문에 대해서 매우 빠른 성능을 보이며 보안적인 장점을 가지고 있다,. ex)String sql = "{call procTest(?,?}"; => {call 프로시저이름(매개변수,매개변수)}";stat = conn.preparedCall(sql); stat.setString(1, 값); => in 자료형stat.registerOutParameter(2, OracleTypes.Cursor); => out 커서 반환 stat.exec.. 더보기
JDBC(PreparedStatement 클래스) PreparedStatemenet- SQL 내부의 '?' 는 매개변수- sql = "insert into 테이블명 values (?,?); Statement와 PreparedStatement의 차이**공통String name = "홍길동";String memo = "메모 테스트입니다.";String priority = "1"; **Statement **PreparedStatement *****Statement : 정적 쿼리에 사용PreparedStatement : 대개 동적 쿼리에 사용(매개변수 사용) //정적 쿼리에도 사용가능. --------------------------------------------------------------------------------------------------.. 더보기
JDBC(Statement 예제) - 메모장 **메인메소드 **메모 추가 **메모 읽기 **메모 삭제 **메모 검색 더보기
JDBC(Statement 클래스) /*Statement 클래스- SQL 구문을 실행하는 역할- 스스로는 SQL 구문 이해 못함(구문 해석X) => 오라클 전달 역할- SQL 관리 O + 연결 정보 X- JDBC의 질의는 기본이 자동 커밋- 문장 종결자 사용금지(;) > 1번에 1개의 쿼리만 실행 가능 Statement 종류1. Statement-기본 객체- 텍트스 SQL 호출 2. PreparedStatement- 1번의 기능 향상- 인자와 관련된 작업이 특화(매개변수)- 코드 안정성 높음, 가독성 높음.- 코드량이 증가( ; ; )- 텍스트 SQL 호출 3. CallableStatement- 2번 베이스- 프로시저 호출 전용*/ Statment 예제 (쿼리 사용) 더보기
JDBC 연결 1. DB 접속- Connection 클래스 -> java.sql.ConnectionConnection conn = null; 2. 연결 문자열 생성- 접속에 필요한 정보로 구성된 문자열, Connecting StringString url = "jdbc:oracle:thin:@localhost:1521:xe"; =>jdbc:oracle:드라이버:@호스트명(서버IP/도메인주소):포트번호:SIDString id = "hr "; => 아이디String pw = "1234" => 패스워드 3. JDBC 드라이버 로딩try{Class.forName("oracle.jdbc.driver.OracleDriver"); 4.접속- Connection 객체 생성 + 접속 작업conn = DriverManager.getCon.. 더보기