Backend

반응형
Backend/MSSQL

[MSSQL]TRANSACTION, XACT_STATE(), SAVE POINT

1. 트랜잭션? MSSQL은 AUTO_COMMIT이 기본 설정. (=자동 커밋) 실무에서 update나, delete를 잘못 쓸 경우 (조건을 안걸고 통채로 적용되어버린다면..? 으악) 큰일나기 때문에, TRANSACTION이라는 게 존재한다. TRANSACTION이란, 하나의 수행 단위를 여러개로 쪼개서 작업한다고 볼 수 있다. 이론적으로는 ACID를 보장한다. (Atomicity:원자성, Consistency:일관성, Isolation:독립성, Durability:영구성) 예를 들어 관리자 DB인 DB1에서 품목 삭제를 누르면, 매장용 DB인 DB2에서도 품목이 삭제되는 로직이 있다고 하자. 이때 삭제 버튼을 누르고 DB1에서 삭제가 되었는데, 정전으로 인해 DB2에서는 품목 삭제가 이뤄지지 않아 매..

Backend/JDBC

[kh정보교육원 50일차] JDBC - Properties (정보보호) , Exception 처리

DBC 코드를 간단하게 까지 만들었다. 오늘은 Properties 의 특징을 이용하여 정보를 보호하고, Exception처리를 하는 법을 배웠다. Properties란 HashTable의 자식클래스 K,V가 String, String 형으로 고정되어 설정 정보를 관리하는데에 최적화 되어있다. 먼저 프로젝트 안에 resources 폴더를 만들고, 다음과 같은 파일 두개를 생성한다. datasource.properties에서는 드라이버 클래스와 유저이름, 비밀번호, url등을 관리하고 member-sql.properties에서는 sql문에 대해 관리할 예정이다. 드라이버 클래스, 유저이름, 비밀번호 , url등 정보 관리 datasource.properties ##########################..

Backend/JDBC

[kh정보교육원 48일차(2)] JDBC - Service 로 기능분할 / JDBCTemplate로 코드 간소화

이전 글까지 배운 내용이 이거였다면, 이번에는 이렇게 코드를 짜보려고 한다. 맨처음처럼 짤 경우에는 dao에 너무 많은 기능들이 들어가 코드가 길어지고 기능 분할이 되지 않아 가독성도 떨어진다. 그래서 service를 추가해서 코드를 분할해보려고 한다. Service 업무로직 business logic 수행. 트랜잭션처리나 업무수행은 Service 에서 하고 Dao는 진짜 DB로 내용 전달만 한다. Dao 만 존재할 때 Dao 와 Service 분리 Service X 1. jdbc driver class 등록 2. Connection 객체 생성 & set AutoCommit (false) Dao (DQL, DML, 공통) 1. jdbc driver class 등록 2. Connection 객체 생성 & ..

Backend/SQL(Oracle)

[kh정보교육원 48일차 (1)]JDBC - 회원정보변경/탈퇴/아이디 조회/이름조회/전체조회 기능 추가

run 클래스 view클래스 vo 클래스 Controller 클래스 Dao클래스 실제로 실행하는 클래스 사용자에게 메뉴 노출 사용자의 입력값 처리 메뉴 선택시 controller의 메소드 호출(요청) Value Object Class Database테이블과 대응한다. field는 테이블의 컬럼과 대응한다. VO객체 하나가 테이블의 레코드와 대응한다. MVC패턴의 가장 중추역할 요청시 view로부터 요청을 받아 dao로 다시 요청을 전달하는 구조. 응답시 dao의 처리 결과값을 받아 view로 리턴처리 Database Access Object 전달받은 데이터를 바탕으로 database에 질의(DQL/DML)하는 객체 지난 시간에 다음과 같은 클래스를 통해서 회원가입을 하는 코드를 작성했다. 이제 남은 기능..

Backend/JDBC

[kh정보교육원 47일차]JDBC - ojdbc8.jar 설치 및 이클립스실행

자바 추상클래스의 경우, 바로 객체로 만들 수 없어서 클래스가 필요했다. 이처럼 DB도, 오라클이 구현한 JDBC API를 이용할 것이다. 자바를 db server(Oracle)에서 사용하기 위한 드라이버가 jdbc(오라클의 경우 - ojdbc)인 것이다. Ojdbc 8 다운로드 ojdbc8.jar 다운로드. (jar = java archive) 혹은 오라클을 깔았다면 파일이 이미 깔려있다. (찾으면 됨) 경로는 C:\app\컴퓨터유저이름\product\18.0.0\dbhomeXE\jdbc\lib 안에 존재한다!! 여기서 ojdbc8을 복사해서 이클립스에 넣자. 그 후, 프로젝트에서 오른쪽버튼 - Properties - Java Build Path 클릭. 오른쪽의 Add JARs...를 누르고 ojdbc..

Backend/SQL(Oracle)

[kh정보교육원 49일차] SQL 각종 모르던 개념 정리 (계정생성/시스템권한의 종류/데이터베이스 오브젝트)

오늘은 SQL활용 시험을 보는 날이었다. 시험을 보면서 깨달은 모르는 개념들을 정리해보려고 한다. 시스템계정에서 오라클 사용자 계정 생성하기 create user [username] identified by [password]; username 에 계정 이름을, password에 비밀번호를 입력한다. ( [ ] 대괄호는 빼고 작성) 시스템 권한의 종류 create user 데이터 베이스 유저 생성 권한 select any table 모든 유저의 테이블 조회 권한 create any table 모든 유저의 테이블 생성 권한 create session 테이블 베이스 접속 권한 create table 테이블 생성 권한 create view 뷰 생성 권한 create proced user 프로시저 생성 권한 c..

Backend/SQL(Oracle)

[kh정보교육원 46일차] Stored Function / Stored Procedure / CURSOR(커서) / TRIGGER(트리거)

STORED FUNCTION 리턴값이 반드시 하나 존재하는 프로시져 객체 ※매개변수타입, 리턴타입에는 자료형의 크기를 작성하지 않는다. 형태 create [or replace] function 함수명 (매개변수명1 타입, 매개변수명2 타입, .... ) return 리턴타입 is -- 지역변수선언 (없으면 is쓰고 바로 begin) begin --실행부 return 리턴값; exception --예외처리부 return 예외발생시 리턴값; end; / ex ) 주민번호를 받아서 나이를 리턴하는 함수 get_age생성 create or replace function get_age(p_emp_no employee.emp_no%type) return number is v_birth_year number; v_a..

Backend/SQL(Oracle)

[kh정보교육원 45일차] PL/SQL 자료형과 변수 - %type, %rowtype, record / DQL+DML(pl/sql) if, case, loop, while, for

오늘, 내일은 PL/SQL에 대해 알아본다. PL/SQL이란 ? Oracle's Procedural Language extension to SQL로, 오라클에서 SQL을 확장하여 사용하는 프로그래밍 언어이다. 절차적 프로그래밍 언어로 일반적인 SQL언어와는 차이가 있다. SQL은 select, update, insert 등 데이터를 조작하는 쿼리만 가능하지만, PL/SQL은 기본 sql외에도 declare(변수), exception(조건처리), loop(반복문) 등 절차적 프로그래밍이 가능한 것이 특징이다. PL/SQL의 유형 익명블럭 PL/SQL객체 - Procedure, Function, Trigger, Job, Scheduler 익명블럭의 구조 declare --(선택) 변수 선언부 begin --..

Backend/SQL(Oracle)

[kh정보교육원 44일차] DCL - GRANT, REVOKE / TCL / DB-Object-data dictionary,stored view, Sequence, Index

DCL Data Control Language 데이터 제어어 권한을 부여/회수하는 명령어 (grant / revoke) TCL Transaction Control Language 를 포함한다. (commit / rollback) GRANT / REVOKE grant 권한 or 롤 to 사용자 or 롤 or public [ with admin option] 권한 previliage - create session, create table , select on table, ....( ~할 수 있는) 롤 role 권한 묶음 - connect , resource, dba, ... with admin option 부여받은 권한 or 롤을 다시 다른 사용자에게 부여할 수 있는 권한 qwerty 사용자생성 qwerty..

Backend/SQL(Oracle)

[kh정보교육원 42일차] DDL - Create 제약조건 /ALTER(add,modify,rename,drop)/TABLE RENAME

DDL Data Definition Language 데이터 정의어 DDL은 Database 객체를 생성하는 기능, Alter 수정, Drop 삭제 하는 명령어이다. 실행 즉시 db에 반영되므로 TCL처리가 필요없다. select object_type from all_objects; 위와 같은 코드를 실행하면 사용자가 소유한 객체, 사용권한을 위임받은 객체 모두 조회 가능한 Data Dictionary를 볼 수 있다. 수십개의 행이 계속해서 인출된다. Create 객체를 생성하는 명령어 컬럼 작성시 컬럼명 자료형 [기본값] [제약조건] 순으로 작성한다. create table member( id varchar2(20) primary key, password varchar2(20) not null, name..

반응형
유경(shin-6-0)
'Backend' 카테고리의 글 목록 (2 Page)