전체
-
[mybatis] 스코프와 생명주기JAVA 2021. 8. 12. 11:27
스코프(Scope) 와 생명주기(Lifecycle) 이제부터 다룰 스코프와 생명주기에 대해서 이해하는 것은 매우 중요하다. 스코프와 생명주기를 잘못 사용하는 것은 다양한 동시성 문제를 야기할 수 있다. 참고 객체 생명주기와 의존성 삽입 프레임워크 의존성 삽입 프레임워크는 쓰레드에 안전하도록 해준다. 트랜잭션 성질을 가지는 SqlSessions과 매퍼들 그리고 그것들을 직접 빈에 삽입하면 생명주기에 대해 기억하지 않아도 되게 해준다. DI프레임워크와 마이바티스를 사용하기 위해 좀더 많은 정보를 보기 위해서는 MyBatis-Spring이나 MyBatis-Guice 하위 프로젝트를 찾아보면 된다. SqlSessionFactoryBuilder 이 클래스는 인스턴스화되어 사용되고 던져질 수 있다. SqlSessi..
-
[mybatis] Mapper xml의 쿼리문과 매핑 원리JAVA 2021. 8. 12. 11:12
아래와 같은 Mapper xml의 쿼리 문이 있다고 할 경우, insert into tbl_member (userid, userpw, username, email) values (#{userid}, #{userpw}, #{username}, #{email}) VO 객체는 다음과 같고, public class MemberVO { private String userid; private String userpw; private String username; private String email; private Date regdate; private Date updatedate; ... 이하 getter, setter는 생략 ... } DAO에서 Mapper xml에 있는 쿼리 실행을 다음과 같이 한다고 할때,..
-
[oracle] 날짜 검색방법 & 현재 날짜SQL/Oracle 2021. 8. 12. 00:09
1. Date 자료형 데이터 -> 문자열로 변경 후 조회 SELECT * FROM MY_TABLE WHERE TO_CHAR(MY_DATE, 'YYYYMMDD') > '20200511') SELECT * FROM MY_TABLE WHERE TO_CHAR(MY_DATE, 'YYYYMMDD') Date 형으로 변경후 조회 SELECT * FROM MY_TABLE WHERE MY_STR_DATE > TO_DATE('20200511') SELECT * FROM MY_TABLE WHERE MY_STR_DATE < TO_DATE('20200511') SELECT * FROM MY_TABLE WHERE MY_STR_DATE BETWEEN TO_DATE('20200509') A..
-
[java] 디자인패턴 - AdapterJAVA 2021. 8. 11. 23:59
Adapter 정의 어댑터 패턴은 이름대로 어댑터처럼 사용되는 패턴이다. 220V 를 사용하는 한국에서 쓰던 기기들을, 어댑터를 사용하면 110V 를 쓰는곳에 가서도 그대로 쓸 수 있다. 이처럼, 호환성이 없는 인터페이스 때문에 함께 동작할 수 없는 클래스들이 함께 작동하도록 해주는 패턴이 어댑터 패턴이라고 할 수 있겠다. Client 써드파티 라이브러리나 외부시스템을 사용하려는 쪽이다. Adaptee 써드파티 라이브러리나 외부시스템을 의미한다. Target Interface Adapter 가 구현(implements) 하는 인터페이스이다. 클라이언트는 Target Interface 를 통해 Adaptee 인 써드파티 라이브러리를 사용하게 된다. Adapter Client 와 Adaptee 중간에서 호환..
-
[mybatis] Persistence FrameworkJAVA 2021. 8. 11. 23:22
퍼시스턴스(persistence)는 영속성이란 뜻으로 영어단어 뜻처럼 지속됨 이라는 뜻이다. 데이터를 생성한 프로그램의 실행이 종료되도 사라지지않는 데이터의 특성을 의미한다. 영속성을 가지지 않는 데이터는 단지 메모리에 존재해 프로그램이 종료되면 없어진다. 데이터가 영속성을 가지려면 파일 시스템, 데이터베이스를 활용해 구현하면 된다. 퍼시스턴스 프레임워크(Persistence Framework)는 데이터의 저장, 조회, 변경, 삭제를 다루는 클래스 및 설정 파일들의 집합이고 간단한 작업으로 데이터베이스와 연동되는 시스템을 개발하고 안정적인 구동을 보장하므로 JDBC프로그래밍의 복잡함과 번거로움을 해소해줄 수 있다. · 종류 - SQL문장으로 직접 DB데이터를 다루는 SQL Mapper - 자바 객체를 통..
-
[oracle] NVL(), NVL2()SQL/Oracle 2021. 8. 11. 17:30
해당 컬럼의 값이 null 값인 경우 특정값으로 출력하고 싶으면 NVL 함수를 사용하고, null 값이 아닐경우 특정값으로 출력하고 싶으면 NVL2 함수를 사용하면 된다. NVL() NVL 함수는 값이 null인 경우 지정값을 출력한다. - 함수 : NVL("값", "지정값") emp테이블에서 사원이름과 급여와 커미션을 합산하여 출력하기. SELECT COMM , NVL(COMM, 0) --커미션이 null 이면 "0" FROM EMP NVL2() NVL2 함수는 null이 아닌경우 지정값1을 출력하고, null인 경우 지정값2을 출력 한다. - 함수 : NVL2("값", "지정값1", "지정값2") SELECT MGR , COMM , NVL2(MGR, 'Y', 'N') --매니저가 있으면 "Y", 없으..
-
[oracle] DDL, DML, DCLSQL/Oracle 2021. 8. 11. 16:43
SQL ( Structured Query Language ) 정의 SQL(구조적 쿼리 언어, Structured Query Language)은 관계 데이터베이스(RDBMS) 시스템의 표준이다 . SQL 문을 이용해서 단순한 쿼리뿐만 아니라 데이터베이스 객체를 만들거나 , 제거하고 , 데이터베이스 내의 데이터를 삽입,갱신 삭제하거나 다양한 운영 작업을 할 수 있다. DBMS 종류에 상관없이 검색, 저장, 관리할 수 있는 표준언어이다. 종류 DDL ( Data Definition Language) - 데이터의 구조를 정의 - 테이블를 생성, 삭제 , 수정 DDL 설명 CREATE 테이블을 생성한다. DROP 테이블을 삭제한다. ALTER 테이블을 수정한다. DML ( Data Manipulation Lang..