[Spring Boot] MyBatis 문법- #{} , ${} 사용법 >>학습 목표 mapper 쿼리문 작성시 파라미터 값을 받아오려면 ${}와 #{} 문법을 사용해야 한다. 이 둘은 사용 용도부터 주의점까지 비슷한 것 같지만 엄염히 다르다고 할 수 있다. #{} 사용법 SELECT * FROM tbl_user1 WHERE id = #{id} MyBatis에서 위와 같은 #{}이 사용된 쿼리문이 실행되면 아래와 같이 쿼리문에 ?가 생기며 파싱된다. SELECT * FROM tbl_user WHERE id = ? #{}의 경우 위의 ? 위치에 파라미터가 바인딩 되어 쿼리문이 실행된다. 변수에 작은 따옴표(' ')가 자동으로 붙어 쿼리가 수행(id = 'kwan')되기 때문에 아래와 같은 방식은 문법에러(SQLSyntaxErrorException)을 발생 시킨다. (${} 사.. 2023. 3. 10. Maven과 Gradle에 대하여 Java언어 사용자라면 많이 접하는 용어인 Maven과 Gradle에 대해 알아보자 >>Maven과 Gradle에 대해 알아보기 전 알아야 할 사전 자식 *컴파일(Compile) -컴퓨터가 이해할 수 있는 기계어로 변환하는 작업이다. 이러한 작업을 해주는 프로그램을 컴파일러라고 한다. *빌드(Build) -소스코드 파일을 실행 가능한 소프트웨어 산출물로 만드는 일련의 과정을 뜻하는데 컴파일은 그중 하나의 과정으로 빌드의 일부분이라 할 수 있다. -빌드의 기능은 전처리, 컴파일, 패키징, 테스팅, 배포가 있다. -빌드를 하기 위해선 Build Tool이 필요한데 Maven, Gradle, Ant 등이 있다. Maven이란? Aphache Maven은 java용 프로젝트 관리 도구(Build Tool)이다... 2022. 11. 3. [Spring] DI(의존성 주입)와 스프링 IoC 컨테이너(Bean) 1. DI(Dependency Injection)이란? Inversion of Control 이라고도 하는 의존 관계 주입(Dependency Injection)이라고도 하며, 어떤 객체가 사용하는 의존 객체를 직접 만들어 사용하는게 아니라, 주입 받아 사용하는 방법이다. (new 연산자를 이용해서 객체를 생성하는 것이라고 생각하면 된다) >>의존성이란 한 객체가 다른 객체를 사용할 때 의존성이 있다고 한다. 장난감들은 베터리가 있어야 움직일 수 있으며 즉 베터리에 의존하고 있다. 장난감들에게 베터리를 넣어주는 것을 의존성 주입이라고 생각하면 좋다. 자바코드로 예시를 들어보자 베터리의 일체형인 경우에는 생성자에서만 의존성을 주입해주는 상황이라 베터리가 떨어지게 된다면 다른 베터리로 교체하지 못하고 새로운.. 2022. 6. 8. [Spring] Getter / Setter 에 대하여 클래스의 모든 정보를 손쉽게 바꿀 수 있으면 안된다. 왜냐하면 클래스는 고객의 비밀번호/결제정보와 같이 민감한 정보들도 담고 있기 때문이다. 그래서 자바의 클래스는, 밖에 드러내도 되는 것들을 public, 함부로 바꾸면 안되는 것들을 private 으로 구분해서 나타낸답니다. setter 는 이렇게 변수의 값 대입이 여러 곳에서, 제한 없이 가능한 것을 접근 제한자로 막고, 접근 범위에 한해서 메소드로 대입전 값을 처리 후 대입되게 하기 위해 사용된다. Getter / 은닉성 메소드를 통해 값을 대입하는 것은 대입전 사전 처리가 필요하니 그럴 수 있다고 치자. Getter는 왜 쓰는 걸까. 어차피 그 값에 영향을 미치지 않으면 값을 가져오는거야 자유롭게 하면 안될까? 큰 프로젝트에서 엄청 긴 코드를 다.. 2022. 5. 30. [Spring Boot] Controller에 대하여 클라이언트의 요청(Request)을 전달받는 코드를 "Controller" 라고 부릅니다. -API마다 다 Controller 파일을 만들 필요도 없고 하나의 Controller에 모든 API를 넣지도 않는다. -유사한 성격의 API를 하나의 Controller로 관리한다. -함수 이름을 내 마음대로 설정 가능 (단, 클래스 내의 중복함수명은 불가능) >> Login 관련 API들로 Controller 파일 작성 예시 @Controller public class UserController { @GetMapping("/user/login") public String login() { // ... } @GetMapping("/user/logout") public String logout() { // ... .. 2022. 5. 30. 이전 1 다음 728x90