목록전체 글 (66)
memo6759 님의 블로그
계층별 역할 정리 객체단 (DTO, Persistent Layer)DB 테이블과 1:1로 매핑되는 데이터 객체주 역할 : 데이터를 담아서 이동시키는 용도 ( getter/setter 보유)2. DAO (Data Access Object)DB 연동을 담당SQL 실행 (insert, update, delete, select -> 각각 메소드 1개씩 대응)3. 서비스단 (Service Layer) DAO 호출비즈니스 로직 처리트랙잭션 관리 (commit, rollback)여러 DAO 메소드를 묶어서 하나의 논리적 작업 단위(트랜잭션)로 처리 4. 트랜잭션여러 SQL을 하나의 묶음성공하면 commit, 실패하면 rollbackDTO = 데이터를 담는 객체DAO = SQL 실행 /는 루트 리눅스 명령어 리눅스의 ..
JDBC 연동 dbc.closetestjdbc.step1.MemberDAOJDBC.txtfinally { //자원반납 // Result -> Statment -> Connectiont순으로 반납하기 try { if(rs!=null)rs.close(); if(stmt!=null)stmt.close(); if(con!=null)con.close(); } catch(SQLException e){ } } 자원반납 클라이언트가 점유해서 사용하던 자원을 반납해야한다.Connection, Statement, ResultSet까지 모든 자원을 반납 해야함.close 메소드를 이용해서 처리가장 마지막에 생성된 객체부터 반납 [DAO 패턴을 적용해서 구현하기]-DAO(Data Access Object)..
JDBC(Java Database Connectivity) 정Java와 DBMS를 연결하기 위한 API자바 프로그램에서 SQL문을 실행할 수 있도록 제공되는 기술 MySQL 접속을 위한 사전작업드라이버 다운로드사용하는 DBMS(Oracle, MySQL 등)의 공식 홈페이지에서 다운로드드라이버 등록 (Eclipse/IntelliJ 기준)프로젝트 선택 → 우클릭 → Build Path → Configure Build PathLibraries 탭 → Add External JARs... → 드라이버 파일 추가 JDBC 프로그래밍 단계1. 드라이버 로딩JVM 메모리에 DBMS의 드라이버 클래스를 로딩Class.forName("드라이버 클래스명") 사용// MySQLClass.forName("com.mysql.c..
1. DDL (Data Definition Language)DDL은 데이터베이스 구조(스키마) 를 정의·변경·삭제하는 명령어입니다.대표적인 명령어:CREATE → 테이블 생성ALTER → 테이블 구조 변경DROP → 테이블 삭제 1) 테이블 생성CREATE TABLE emp ( empno INT AUTO_INCREMENT PRIMARY KEY, ename VARCHAR(20), deptno INT, mgr INT, sal DECIMAL(10,2));AUTO_INCREMENT → 자동 증가 숫자PRIMARY KEY → 기본키 (중복, NULL 불가)작업문법 예시컬럼 추가ALTER TABLE mymember ADD COLUMN email CHAR(15);컬럼 타입 변경ALTER T..
1. 조인(Join)관계형 데이터베이스에서 여러 테이블의 데이터를 원하는 형태로 결합할 때 사용한다.기본적으로 **기본키 테이블(Parent)**과 **외래키 테이블(Child)**을 기준으로 조인한다.조인 특징 반드시 연관성 있는 컬럼(기본키 ↔ 외래키)끼리 조인해야 함from 절에 사용할 모든 테이블을 정의where 절 또는 on 절에 조인 조건을 명시컬럼명이 겹치는 경우 반드시 테이블명을 붙여 구분여러 테이블 조인 시 모든 관계를 조건으로 작성해야 함select 컬럼리스트from 테이블1[inner] join 테이블2 on 조인조건[inner] join 테이블3 on 조인조건where 조건; 조인 종류Inner Join (내부조인)→ 양쪽 테이블에서 조건이 일치하는 데이터만 조회Outer..
SQL 기본 문법 정리 (조건 / NULL / 그룹함수 / 내장함수)1. NULLNULL: 컬럼에 값이 없는 상태NULL과의 연산 결과는 항상 NULL-- NULL 조회where 컬럼 is null;-- NULL이 아닌 값 조회where 컬럼 is not null;2. DISTINCT중복 제거를 위해 사용한 컬럼 기준으로 중복값 제거 가능여러 컬럼 조합을 지정하면 동일한 레코드도 제거 가능select distinct deptno from emp;3. 조건절 (where) 비교연산자=, !=, , >, >=, and / or-- and: 모든 조건 만족where sal >= 2000 and hiredate inwhere sal in (1250, 2975, 3000); like (패턴 검색)%: 모든 문..
MySQL 기초 정리 (DBMS / 계정 / 권한 / SELECT)1. 데이터베이스 개념 데이터베이스 (Database)기업/조직에서 필요한 데이터를 저장한 데이터 집합DBMS(Database Management System): 데이터를 관리하는 소프트웨어 (MySQL, Oracle, PostgreSQL 등)DBA(Database Administrator): 데이터 설계, 인덱싱, 튜닝, 백업 등을 담당하는 데이터베이스 관리자 DBMS 장점데이터 무결성 유지데이터 공유와 일관성 보장중복 최소화관계형 데이터베이스 (RDBMS)데이터를 2차원 표(테이블) 형태로 저장최소 단위: 테이블(Relation)열 = 컬럼(Column, Attribute, 필드)행 = 레코드(Row, Tuple)PK(Primary K..
포크(Fork)의 개념포크(Fork)는 GitHub에서 다른 사용자의 저장소(레포지토리)를 자신의 계정으로 복사하는 과정을 말합니다. 이를 통해 여러 사용자가 동일한 프로젝트에 참여하거나 개선 사항을 제안할 수 있습니다. 포크를 통해 만들어진 저장소는 원본 저장소와는 독립적으로 관리됩니다.이클립스에서 작성한 프로젝트를 github에 올리기 - step1 프로젝트 공유하기[출처] 이클립스에서 작성한 프로젝트를 github에 올리기 - step1 프로젝트 공유하기|작성자 heaves1 STS를 통해 우리가 작성한 프로젝트를 github의 repository로 올리는 작업을 해보도록 하겠습니다. 그전에 github와 이클립스를 연동하는 경우 내부에서 어떻게 저장되며 관리되는지 알아야 합니다 SVN 같은 저장소..
InputStream vs InputStreamReaderInputStream바이트 단위 (byte[])로 데이터를 읽는 최상위 추상 클래스FileInputStream, BufferedInputStream 등 하위 클래스 있음주로 이미지, 동영상, 바이너리 파일 처리 시 사용InputStreamReaderInputStream -> 문자 단위로 변환 (byte -> char)인코딩 지정 가능 (UTF - 8, Ms949 등)FileReader와 비슷하지만, FileReader는 인코딩을 지정 못함FileInputStream fis = new FileInputStream("test.txt");InputStreamReader isr = new InputStreamReader(fis, "UTF-8");int ..
오늘의 리뷰InputStreamTest,InputStreamReaderTest=> InputStream과 InputStreamReader의 차이점,FileInputStreamTest2와 FileReaderTest의 비교,FileWriterTest,FileReader로 읽고 FileWriter로 쓰기=> FileCopy2와 FileCopy_BufferedReader,BufferedReaderTest,Grade로 연습 FileInputStream은 바이트 단위로만 읽습니다.영어/숫자는 큰 문제가 없지만, 한글은 UTF-8, EUC-KR 등 인코딩이 필요해서 깨질 수 있어요.그래서 InputStreamReader 같은 문자 단위 스트림을 써야 합니다.데이터 정제 작업 예전에는 깃말고 svm을 사용했는데 깃은..