분류 전체보기 85

MyBatis foreach를 이용한 배열 파라미터 삽입하기

쿼리를 작성해야 할때 전달받은 인자값을 바탕으로 반복적인 SQL 구문을 작성할때 유용하다. 대표적으로 체크박스등과 같은 인자값이 동일한 다수의 배열 데이터를 검색조건에 반영해야 할때가 있는데, 이때 OR 구문 또는 IN 구문으로 작성하면 편리하게 사용할 수 있다. 다만 foreach의 경우 인자값으로 List와 Array 형태의 collection 타입만 사용이 가능하다. foreach 기본 문법 형태 collection = 전달받은 인자. List나 Array 형태만 가능 item = 전달받은 인자값을 alias 명으로 대체 open = 해당 구문이 시작될때 삽입할 문자열 close = 해당 구문이 종료될때 삽입할 문자열 separator = 반복 되는 사이에 출력할 문자열 index=반복되는 구문 번..

Java 2021.02.13

GROUP BY, HAVING 절이란? ORDER BY 절이란?

집계함수 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 다중햄 함수 중 집계 함수 입니다. 집계함수의 특성 1. 여러 행들의 그룹이 모여서 그룹당 단 하나의 결과를 돌려주는 함수이다. 2. GROUP BY 절은 행들을 소그룹화 한다. 3. SELECT, HAVING, ORDER BY 절에 사용할 수 있다. 집계함수의 종류 집계 함수 사용 목적 COUNT(*) NULL 값을 포함한 행의 수를 출력한다. COUNT(표현식) 표현식의 값이 NULL 값인 것을 제외한 행의 수를 출력한다. SUM([DISTINCT | ALL] 표현식) 표현식의 NULL 값을 제외한 합계를 출력한다. AVG([DISTINCT | ALL] 표현식) 표현식의 NULL 값을 제외한 평균을 출력한다. MAX([DISTINC..

Database 2021.02.09

분석함수 vs 집계함수

분석함수란? - 테이블에 있는 데이터를 특정 용도로 분석하여 결과를 반환하는 함수 - 복잡한 계산을 단순하게 처리해주는 함수 - 쿼리 결과Set을 대상으로 계산을 수행하는 함수 - SELECT 절에서 수행됨 FROM, WHERE, GROUP BY 절에서 사용 불가 ORDER BY 구문에서는 사용 가능 - 오라클 8.1.6 부터 분석함수 지원 집계함수 vs 분석함수 집계함수 집계함수는 여러행 또는 테이블 전체 행으로부터 그룹별로 집계하여 결과를 반환한다. SELECT deptno , SUM(sal) s_sal FROM emp GROUP BY deptno; 분석함수 분석 함수는 집계 결과를 각 행마다 보여준다. SELECT deptno , empno , sal , SUM(sal) OVER(PARTITION ..

Database 2021.02.09

Chrome 양식 다시 제출 확인 ERR_CACHE_MISS 해결방법

Chrome에서 POST 요청으로 페이지 이동후 뒤로 가기를 하면 아래와 같은 확인 페이지를 제공하도록 되어있습니다. ​Spring security를 사용하면 headers cacheControl를 disabled 처리함으로써 해결합니다. @Configuration @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) { http // ... .headers(headers -> headers .cacheControl(cache -> cache.disable()) ); } } Cache Control 문서 ..

Java/Spring 2021.01.27

mybatis에서 selectKey 사용하는 방법

예를 들어 쿼리 작업을 진행하보면 먼저 쿼리 한줄을 INSERT 을 하고 INSERT 된 구문의 증가된 키 값을 가지고 와서 다음 쿼리에서 바로 사용해야 할 경우가 있다. 이때 mybatis에서 제공해주는 selectKey를 사용 하면 된다. selectKey를 이용하면 별도로 해당 키 값을 select 하는 구문을 등록할 필요 없이 selectKey 구문에서 해결할 수 있다. --mysql, mariaDB create table Board( rno int not null auto_increment, boardNo varchar(20) not null, title varchar(50) not null, content text not null, primary key(rno), unique(boardNo) ..

Java 2020.10.09

$(document).ready() VS $(window).load() 의 차이

1. $(document).ready() - 외부 리소스, 이미지에 상관없이 브라우저가 DOM(Document Object Model) 트리가 생성된 직후 실행된다. - window.load() 보다 더 빠르게 실행되고 중복 사용하여 실행하여도 선언한 순서대로 실행된다. - (function(){ }); 와 같다. $(document).ready(function(){ }); | | $(function(){ }); 2. $(window).load() - DOM의 standard 이벤트 - html의 로딩이 끝난 후에 시작된다. - 화면에 필요한 모든 요소(css, js, image, iframe etc..)들이 웹 브라우저 메모리에 모두 올려진 다음에 실행된다. - 화면이 모두 그려진 다음의 메세징이나 이..

JavaScript 2020.09.10

함수 - function

1. 함수 선언식(function declaration) function test(){ } 함수 선언식은 script가 로딩되는 시점에서 초기화하고 이것을 VO에 저장한다. 따라서 함수 선언 위치와 상관 없이 어디서든 호출하여 사용 가능하다. 2. 익명 함수 표현식(annoymous function expresstion) var test = function(){ } test(); // 함수호출 익명 함수 표현식은 함수를 정의하고, 변수에 함수를 저장하고 실행하는 과정을 거친다. 함수는 객체 라는 정의가 가능하다. 함수 선언식과는 달리 Runtime 시에 함수가 해석되고 실행된다. cf) 런타임, 컴파일 타임 컴파일 타임 - 프로그램을 생성하기 위해 개발자는 먼저 소스코드를 작성하고 컴파일이라는 작업을 통..

JavaScript 2020.09.10

객체 - Getter와 Setter 함수

Getter와 Setter 함수 사용하는 이유는 캡슐화, 정보은닉을 위해서 사용합니다. 단순히 사용하여서 결과를 얻을수 있지만, 얻는 과정의 내부로직은 알 수 없게 하는 이점이 있습니다. Getter 함수와 Setter 함수를 사용하게 되면 특정 값을 바꾸려고 하거나, 특정 값을 조회하려고 할 때 우리가 원하는 코드를 실행 시킬 수 있습니다. const numbers = { a: 1, b: 2 } number.a =5; console.log(numbers); // Object { a: 5, b: 2} const numbers = { a: 1, b: 2, get sum() { console.log('sum 함수가 실행됩니다!'); // 함수를 무조건 반환해야합니다. return this.a = this.b..

JavaScript 2020.09.07

객체 - 객체 안에 함수 넣기

객체 - 객체 안에 함수 넣기 const dog={ name: '멍멍이', sound:'멍멍!', say: funciton say(){ console.log(this.sound); //this는 함수가 위치한 객체의 자기자신 --> dog 를 의미 } }; dog.say(); //멍멍! // function을 지워줘도 동작함 const dog={ name: '멍멍이', sound:'멍멍!', say: say(){ console.log(this.sound); //this는 함수가 위치한 객체의 자기자신 --> dog 를 의미 } }; dog.say(); //멍멍! //화살표 함수를 사용했을때에는 동작안함 const dog={ name: '멍멍이', sound:'멍멍!', say: () =>{ console..

JavaScript 2020.09.07