문자로 검색

SELECT * FROM table WHERE name LIKE CONCAT('%', '문자', '%');

 

오늘자만 검색

SELECT * FROM table WHERE reg_date > CURRENT_DATE()

'SQL' 카테고리의 다른 글

MyBatis(parameterType,resultType,resultMap)  (0) 2021.01.17

mybatis.org/mybatis-3/ko/index.html

 

MyBatis – 마이바티스 3 | 소개

Copyright © 2009–2020MyBatis.org. .

mybatis.org

마이바티스는 개발자가 지정한 SQL, 저장프로시저 그리고 몇 가지 고급 매핑을 지원하는 퍼시스턴스 프레임워크이다.

마이바티스는 JDBC로 처리하는 상당 부분의 코드와 파라미터 설정 및 결과 매핑을 대신해준다.

마이바티스는 데이터베이스 레코드에 원시타입과 Map 인터페이스 그리고 자바 POJO를 설정해서 매핑하기 위해 XML과 애노테이션을 사용할 수 있다.

 


parameterType="smartView.ai.viewModelList.model.ViewModelListVO"

resultType="int"   ,resultType="map"

resultMap="ViewModelListVO-result"

 

 

parameterType        구문에 전달될 파라미터의 패키지 경로를 포함한 전체 클래스명이나 별칭

resultType              구문에 의해 리턴되는 기대 타입의 패키지 경로를 포함한 전체 클래스명이나 별칭. collection                            경우 collection 타입 자체가 아닌 collection 이 포함된 타입이 될 수 있다. resultType이나                              resultMap을 사용하라.

resultMap               외부 resultMap resultMap의 참조명. 결과 맵은 마이바티스의 가장 강력한 기능이다. resultType이나                              resultMap을 사용하라.


예시 1

 

 

<select id="selectViewModelList" parameterType="map" resultType="map">

파라미터 타입이 map이고 리솔트타입이 map이라는 것은

 

    <!-- <resultMap id="ViewModelListVO-result" type="smartView.ai.viewModelList.model.ViewModelListVO">

        <result property="projectNm" column="PROJECT_NM" javaType="java.lang.String" />

        <result property="regId" column="REG_ID" javaType="java.lang.String" />

        <result property="regDt" column="REG_DT" javaType="java.lang.String" />

    </resultMap> -->

이렇게 이름을 선언해줄 필요도 없고

 

impl에서

List<Map<String, Object>> projectList = dao.selectList("ViewModelList.selectViewModelList", paramMap);

파라미터타입으로 map 받는다는 것이고

리솔트타입으로 map으로 준다는 것이다  Map<String, Object> 이거보이지?

 

 <select id="selectViewModelList" parameterType="map" resultType="map">

        SELECT D.PROJECT_NM AS projectNm

   jsp쪽에서는 AS 만든 projectNm 이름을 쓰게 되겠지

 

이렇게 되면 VO 타지 않는다.

 


예시 2

 

 

<select id="selectViewModelListCnt" parameterType="smartView.ai.viewModelList.model.ViewModelListVO" resultType="int">

파라미터 타입이 VO이고 리솔트타입이 int라면

 

VO 만들어야하고

 

  <resultMap id="ViewModelListVO-result" type="smartView.ai.viewModelList.model.ViewModelListVO">

        <result property="projectNm" column="PROJECT_NM" javaType="java.lang.String" />

        <result property="algorithmNm" column="ALGORITHM_NM" javaType="java.lang.String" />

        <result property="nodeNm" column="NODE_NM" javaType="java.lang.String" />

        <result property="regId" column="REG_ID" javaType="java.lang.String" />

        <result property="regDt" column="REG_DT" javaType="java.lang.String" />

    </resultMap

이렇게 선언을 해주고

 

impl에서는

int cnt = dao.selectOne("ViewModelList.selectViewModelListCnt", sViewModelListVO);

파라미터타입으로 sViewModelListVO

리솔트타입으로 int 준다.

 

<select id="selectViewModelList" parameterType="smartView.ai.viewModelList.model.ViewModelListVO" resultMap="ViewModelListVO-result">

SELECT D.PROJECT_NM

AS 써줄 필요가 없는게 resultMap에서 이름 property 선언해줬다

 

resultMap안에 type 선언되있기때문에  resultType 굳이 안적어도된다

'SQL' 카테고리의 다른 글

자주 사용하는 sql 쿼리  (0) 2021.06.02

+ Recent posts