mybatis 8

MyBatis config.xml의 위치

Q1.Java 프로젝트에서, Gradle 프로젝트 빌드 라이브러리를 이용해서 MyBatis 프레임워크를 이용하려고 하는데, 이때 MySQL과의 접속 정보 설정값들과 mapper 들의 설정값이 적혀있는 config.xml의 파일은, 프로젝트최상단/app/src/main/resources 안에만 있을 수 있는건가?   A1.ChatGPT의 말:MyBatis의 config.xml 파일은 반드시 Gradle 프로젝트의 src/main/resources 디렉토리에 있어야 하는 것은 아닙니다. 하지만, MyBatis와 MySQL 연결 설정의 관행과 Gradle 빌드 시스템의 작동 방식을 이해하면 일반적으로 다음과 같은 이유 때문에 src/main/resources 디렉토리에 배치됩니다.1. Gradle의 리소스 관..

동적 MyBatis 구문, 동적 SQL 구문.

Q1.동적 SQL 구문이 맞는 말일까, 아니면 동적 MyBatis 구문이 맞는 말일까?   A1.ChatGPT의 말: "동적 SQL 구문"과 "동적 MyBatis 구문"은 서로 다른 맥락에서 사용되며, 둘 다 적절할 수 있지만 문맥에 따라 구분해서 사용해야 합니다.1. 동적 SQL 구문의미: 동적 SQL은 실행 시점에 SQL 구문이 동적으로 생성되는 것을 말합니다.일반적인 SQL에서는 정적으로 작성된 쿼리를 실행하지만, 동적 SQL은 사용자의 입력값이나 조건에 따라 SQL 쿼리를 동적으로 생성하여 실행합니다.예를 들어, 조건에 따라 WHERE 절이 추가되거나, JOIN 문이 달라지는 SQL 구문이 동적 SQL입니다.동적 SQL은 MyBatis뿐만 아니라 JDBC, JPA 등 여러 데이터베이스 액세스 기술..

MyBatis 동적 sql 구문

Q1." 이렇게 sql 구문을 짜는 것이, mybatis의 동적 sql 구문인가?   A1.네, 맞습니다! 이 SQL 구문은 MyBatis의 동적 SQL 구문에 해당합니다. MyBatis에서는 , , , , , 등과 같은 태그를 사용하여 SQL 문장을 동적으로 구성할 수 있습니다. 질문에 있는 코드를 살펴보면 다음과 같은 MyBatis 동적 SQL 요소들이 사용되었습니다:: 태그는 조건을 동적으로 추가할 때 유용합니다. 이 태그 내부에서 여러 조건을 작성할 수 있고, 조건이 하나라도 충족되면 WHERE 키워드가 자동으로 추가됩니다.: 태그는 특정 조건에 따라 SQL 문이 포함될지 여부를 결정합니다.예를 들어, name 값이 null이 아닐 경우 name LIKE CONCAT ('%', #{name},..

mapper에서 조건태그로 sql 구문 만들기

08-08 database 에서Q1.지금 코드의 진행과정에서, 하나의 키워드를 각각 name 과 userid 값으로 넣어주고 있어. 즉, name의 값이 있으면, userid에도 똑같은 값이 있고, name의 값이 없으면, userid도 똑같이 값이 없어. 이런 상황에서, "name LIKE CONCAT ('%', #{name}, '%') " + "OR userid LIKE CONCAT ('%', #{userid}, '%') " + 이 조건에 name 과 userid에 값이 "교수이름" 으로 할당되었다고 쳤을때, 이건 or 연산자이기 때문에 둘 중 하나라도 걸리는 값이 있다면 출력하게 되는 것이지?   A1. 네, 맞습니다. 주어진 코드에서 name과 userid에 모두 "교수이름"이라는 값이 할당되어 ..

241023 삽질-null 입력, date 형식에서의 문제.

!!! 궁금한것 3가지 1. 왜 교수는 고용시간이 시간까지 나오는데, 학생은 안나오는건가? -매퍼에서의 SELECT 구문 차이 2. 왜 comm을 null로 입력을 못하고 있는건가? 어떻게하면 null 값을 넣을 수 있을까? 테스트중.  -> 1. 여기 세터에다가 직접 조건절 + RequestParam에서 required =false로. -> 2. 내일 배울 Dynamic SQL 구문 3. input type="date"는 시간은 뱉어낸다. 그래서 아래처럼 select 절을 세팅해두셨다 DATE_FORMAT(birthday, '%Y-%m-%d') as birthday  ==> 매퍼 싹 검사해야함...

DAO 패턴과 MyBatis

Q1. DAO 패턴이 뭐지? A1. DAO(Data Access Object) 패턴은 데이터베이스와의 상호작용을 캡슐화하는 디자인 패턴입니다. DAO 패턴을 사용하면 데이터베이스 접근 로직을 분리하여 코드의 유지보수성과 재사용성을 높일 수 있습니다. DAO 클래스는 데이터베이스 CRUD(Create, Read, Update, Delete) 작업을 수행하는 메서드를 제공합니다. DAO 패턴의 주요 구성 요소는 다음과 같습니다: 1. DAO 인터페이스: 데이터 접근 메서드의 인터페이스를 정의합니다. 2. DAO 구현 클래스: 인터페이스를 구현하여 실제 데이터베이스 접근 로직을 작성합니다. 3. 모델 클래스: 데이터베이스 테이블과 매핑되는 엔티티 클래스입니다. 4. 서비스 클래스: 비즈니스 로직을 처리하며, ..