본문 바로가기

dev151

[Spring] URLDecode.decode 안뜨는 현상 수정 >> 아래와 같이 ${URLDecoder.decode(param.msg} 가 안뜨는 현상이 발생하였다. >> 이유를 못찾다가 결국 찾은게 import를 안해줘서 였다 import를 해주자 !!!! 2022. 7. 13.
[Spring] Paging >> 페이징 - 게시판에서 글 페이지처리하는 것을 페이징이라고 하며 페이징을 위한 PageDto 가 있어야 한다. - PageDTO에는 페이지에 관한 속성들이 존재한다. >> 속성들을 하나씩 생각해보자 - totalCnt : 총 게시물의 숫자 - pageSize : 한페이지에 나타낼 게시물의 숫자 - naviSize : 페이지 이동할때 나타낼 페이지의 숫자 - totalPage : 총페이지 숫자 - page : 현재 페이지 - beginePage : 네비게이션에 나타낼 첫번쨰 페이지 숫자 - endPage : 네비게이션에 나타낼 마지막 페이지 숫자 - showPrev : 이전페이지 네비게이션을 보여줄지 말지 여부 - showNext : 다음페이지 네비게이션을 보여줄지 말지 여부 .. 2022. 7. 13.
[Spring] Mybatis -1 (2방법) MyBatis을 직접적으로 사용할수도 있지만 Spring에서 Mybatis를 사용하려면 >> Mybatis org.mybatis mybatis 3.5.10 >>Mybatis-Spring org.mybatis mybatis-spring 2.0.7 2개가 필요로 하다. pom.xml 에 dependency 를 추가해야 한다. 또한 Mybatis를 위한 mybatis-config.xml (mybatis 설정파일) 과 Mapper 파일을 지정해줘야 한다. >> root-context.xml에 SqlSessionFactory와 SqlSession은 SqlSessionFactoryBean, SqlSessionTemplate을 통해서 만들어진다. 형태로는 @Controller --> @Service ---> @Rep.. 2022. 7. 12.
[Spring] @Transactional-2 Transcation의 속성 속성 설명 propagation Tx의 경계(Boundary)를 설정하는 방법을 저장 isolation Tx의 isolate level을 지정, DEFAUL, READ_UMCOMMITTED, READ_COMMITTED, REPEATABLE_READ, SERIALIZABLE Default의 경우 DB설정을 따른다(Default = REPEATABLE_READ) readOnly Tx이 데이터를 읽기만 하는경우, true로 지정하면 성능이 향상 rollbackFor 지정된 예외가 발생하면, Tx를 rollback // RuntimeException과 Error는 자동 rollback noRollbackFor 지정된 예외가 발생해도, Tx을 Rollback하지 않음 timeout 지.. 2022. 7. 12.
[Spring] @Transactional-1 Presentation Layer >> CONTROLLER : 사용자의 요청을 받는 부분 Businees Layer >> SERVICE : 비즈니스 로직을 처리할 계층 >> Tx 처리를 해야하는 부분 Persistence Layer >> DAO : CRUD가 이뤄지는 계층 >> TransactionManager란? - DAO의 각 매서드는 개별 Connection을 사용 ==> 1개의 Connection을 사용하도록 해야 Rollback하여 되돌릴 수 있음 ==>> DAO에서 Connection을 얻거나 반환할떄 DataSourceUtils를 사용해야 한다. ===> Connection con = DataSourceUtils.getConnection(ds); ===> DataSourceUtils.rele.. 2022. 7. 12.
[Spring] AOP-2 관점지향 프로그래밍, 횡단 관심사, cross-cutting concerns 부가 기능(advice)를 동적으로 추가해 주는기술 >> 메서드의 시작 또는 끝에 자동으로 추가 >> 부가기능 m.invoke(obj,args) >> 핵심 기능 >> 부가기능 >> Custom, Sales, Clert 라는 메서드에 Logging, Transaction, Security 가 모두 들어간다 고했을때 이 기능들을 분리하여 공용으로 사용할수 있도록한다. 그리고 해당 메서드에 자동으로 주입해준다. ======================== AOP 관련용어 target : advice가 추가될 객체 ( custom, sales, clert ) advice : target에 동적으로 추가될 부가 기능(코드) (Loggin.. 2022. 7. 12.
[Spring] Transaction, Commit, Rollback >> Transaction - 더 이상 나눌수 없는 작업의 단위 - N개의 Transaction이 모두 성공하지 않으면 Transaction이 실행되기 전으로 Rollbak해야 한다. - N개의 트랜잭션을 1개의 트랜잭션으로 묶어서 처리해야한다. ◆ 트랜잭션의 속성 (원일이는 지독해) > 원자성(Automicity) : 나눌수 없는 하나의 작업으로 다뤄줘야 한다(입금/출금 ==> 하나의 작업으로) > 일관성(Consistency) : Tx가 수행전과 후가 일관된 상태를 유지해야 한다. > 독립성(Isolation) : 각 Tx는 독립적으로 수행되어야 한다. (Tx가 다른 Tx에 영향을 끼치면안된다.) - Isolation Level --- READ UNCOMMITED : 커밋되지 않은 데이터도 읽기 가능.. 2022. 7. 6.
[DB/Mysql] HAVING, GROUP BY select 절 5 from 절 1 where 절 2 group by 절 3 having 절 4 order by 절 6 >> GROUP BY 절을 기술하지 않거나 GROUP BY 절에 NULL 이나 ()을 기술하면 전체 행이 하나의 행그룹으로 처리된다. >> 위의 쿼리문을 잘 분석해보면 detpno job sal 행그룹 c1 10 MANAGER 2450 10 7459 10 PERSIDENT 5000 20 ANALYST 3000 20 8975 20 ANALYST 3000 20 MANAGER 2975 30 MANAGER 2850 30 2850 >> 위의 쿼리를 분석해보자면 detpno job sal 행그룹 c1 10 MANAGER 2450 10, MANAGER 2450 10 PERSIDENT 5000 10,.. 2022. 7. 5.
[DB/MySQL] 기타함수(Group_concat) Mysql : group_concat(colums, SEPARATOR 'delimeter') // group_concat(colums) 시 default 는 ' , ' 로 나온다 Oracle : LISTAGG(colums, 'delimiter') WITHIN GROUP(ORDER BY colum) 2022. 7. 5.
[DB/MySQL] 집계함수 count(*) 전체 행의 갯수를 반환 count(expr) 널이 아닌 expr의 갯수를 반환 count(distinct expr) 널이 아닌 expr의 고유한 갯수를 반환(중복없는) >> MIN( expr) / MAX( expr ) ==> expr의 최대 최솟값을 반환한다. >> 아래의 쿼리는 empno = 0 의 조건에 해당하는 결과가 없기 때문에 결과가 아무것도 반환되지 않는다. >> 하지만 집계함수를 사용한 쿼리는 where를 만족하는행이 없더라도 하나의 행을 반환한다. 즉 데이터 존재여부를 확인할 떄 사용할 수 있다. >> Mysql : ifnull() --> oracle : nvl() >> SUM( expr ) / expr 의 합계값을 반환 >> sum(expr) 일때 expr의 합이 null.. 2022. 7. 5.