Mybatis - Oracle Clob 데이터 DML 처리

Posted 10 30, 2013 17:08, Filed under: Language/ㅡ iBATIS


# Bulletin.xml
<!-- 
  # DB 결과 데이터 객체에 매핑 
  # jdbcType="CLOB"
-->
<resultMap id="getBulletinMap" type="Board">
    <result property="boardSeq" column="BOARD_SEQ" javaType="java.lang.Integer" jdbcType="INTEGER" />
    <result property="bulletinSeq" column="BULLETIN_SEQ" javaType="java.lang.Integer" jdbcType="INTEGER" />
    <result property="cnthit" column="CNT_HIT" javaType="java.lang.Integer" jdbcType="INTEGER" />
    <result property="topic" column="TOPIC" javaType="java.lang.String" jdbcType="VARCHAR" />
    <result property="depth" column="DEPTH" javaType="java.lang.Integer" jdbcType="INTEGER" />
    <result property="ordering" column="ORDERING" javaType="java.lang.Integer" jdbcType="INTEGER" />
    <result property="parentTree" column="PARENT_TREE" javaType="java.lang.Integer" jdbcType="INTEGER" />
    <result property="createId" column="CREATE_ID" javaType="java.lang.String" jdbcType="VARCHAR" />
    <result property="createDate" column="CREATE_DATE" javaType="java.util.Date" jdbcType="DATE" />
    <result property="content" column="CONTENT" javaType="java.lang.String" jdbcType="CLOB" />
</resultMap>

<!-- DB 결과, resultMap 연결 -->
<select id="getBulletin" parameterType="java.util.HashMap" resultMap="getBulletinMap">
    SELECT B.BULLETIN_SEQ AS bulletinSeq,
           B.BOARD_SEQ AS boardSeq,
           B.TOPIC AS topic,
           B.CONTENT AS content,
           B.PARENT_TREE AS parentTree,
           B.CNT_HIT AS cnthit,
           B.CREATE_ID AS createId,
           B.CREATE_DATE AS createDate,
           B.DEPTH AS depth,
           B.ORDERING AS ordering
      FROM BULLETIN B
     WHERE B.BOARD_SEQ = #{boardSeq}
       AND B.BULLETIN_SEQ = #{bulletinSeq}
</select>

<!-- 
  # DB Insert, Update 
  # Clob 데이터 입력 컬럼에 VARCHAR jdbcType 타입 지정 : content:VARCHAR
-->
<insert id="addBulletin" parameterType="java.util.HashMap">
    <selectKey keyProperty="bulletinSeq" resultType="int" order="BEFORE">
        SELECT SEQ_BULLETIN.NEXTVAL FROM DUAL              
    </selectKey>
    INSERT INTO BULLETIN(
        BOARD_SEQ,
        BULLETIN_SEQ,
        TOPIC,
        CREATE_ID,
        CONTENT,
        ORDERING,
        CNT_HIT,
        DEPTH,
        PARENT_TREE,
        CREATE_DATE
    )
    VALUES(
        #{boardSeq},
        #{bulletinSeq},
        #{topic},
        #{createId},
        #{content:VARCHAR},
        #{ordering},
        0,
        #{depth},
        #{parentTree},
        sysdate
    )
</insert>



# Insert, Updte 시에 jdbcType 잘못 지정할 경우 에러 내용

에러내용보기..


> Mapper XML 설정 정보
http://mybatis.github.io/mybatis-3/ko/sqlmap-xml.html#insert_update_and_delete

> 데이터 타입 정보
속성 설명
 property 결과 칼럼에 매핑하기 위한 필드나 프로퍼티. 자바빈 프로퍼티가 해당 이름과 일치한다면, 그 프로퍼티가 사용될 것이다. 반면에 MyBatis 는 해당 이름이 필드를 찾을 것이다. 점 표기를 사용하여 복잡한 프로퍼티 검색을 사용할 수 있다. 예를 들어, “username”과 같이 간단하게 매핑될 수 있거나 “address.street.number” 처럼 좀더 복잡하게 매핑될수도 있다.
 column 데이터베이스의 칼럼명이나 별칭된 칼럼 라벨. resultSet.getString(columnName) 에 전달되는 같은 문자열이다.
 javaType 패키지 경로를 포함한 클래스 전체명이거나 타입 별칭. 자바빈을 사용한다면 MyBatis 는 타입을 찾아낼 수 있다. 반면에 HashMap 으로 매핑한다면, 기대하는 처리를 명확히 하기 위해 javaType 을 명시해야 한다.
 jdbcType 지원되는 타입 목록에서 설명하는 JDBC 타입. JDBC 타입은 insert, update 또는 delete 하는 null 입력이 가능한 칼럼에서만 필요하다. JDBC 의 요구사항이지 MyBatis 의 요구사항이 아니다. JDBC 로 직접 코딩을 하다보면, null 이 가능한 값에 이 타입을 지정할 필요가 있을 것이다.
 typeHandler 이 문서 앞에서 이미 타입 핸들러에 대해 설명했다. 이 프로퍼티를 사용하면, 디폴트 타입 핸들러를 오버라이드 할 수 있다. 이 값은 TypeHandler 구현체의 패키지를 포함한 전체 클래스명이나 타입 별칭이다.



> 지원되는 JDBC 타입

좀더 상세한 설명전에, MyBatis 는 jdbcType 열거를 통해 다음의 JDBC 타입들을 지원한다.

 BIT  FLOAT  CHAR  TIMESTAMP  OTHER  UNDEFINED
 TINYINT  REAL  VARCHAR  BINARY  BLOG  NVARCHAR
 SMALLINT  DOUBLE  LONGVARCHAR  VARBINARY  CLOB  NCHAR
 INTEGER  NUMERIC  DATE  LONGVARBINARY  BOOLEAN  NCLOB
 BIGINT  DECIMAL  TIME  NULL  CURSOR  ARRAY


※ 위 내용은, 여러 자료를 참고하거나 제가 주관적으로 정리한 것입니다.
   잘못된 정보나 보완이 필요한 부분을, 댓글 또는 메일로 보내주시면 많은 도움이 되겠습니다.
10 30, 2013 17:08 10 30, 2013 17:08


Trackback URL : http://develop.sunshiny.co.kr/trackback/967

Leave a comment


Recent Posts

  1. HDFS - Python Encoding 오류 처리
  2. HP - Vertica ROS Container 관련 오류...
  3. HDFS - Hive 실행시 System Time 오류
  4. HP - Vertica 사용자 쿼리 이력 테이블...
  5. Client에서 HDFS 환경의 데이터 처리시...

Recent Comments

  1. 안녕하세요^^ 배그핵
  2. 안녕하세요^^ 도움이 되셨다니, 저... sunshiny
  3. 정말 큰 도움이 되었습니다.. 감사합... 사랑은
  4. 네, 안녕하세요. 댓글 남겨 주셔서... sunshiny
  5. 감사합니다 많은 도움 되었습니다!ㅎㅎ 프리시퀸스

Recent Trackbacks

  1. Learn More Learn More %M
  2. facebook marketing company facebook marketing company %M
  3. check it out here check it out here %M
  4. synchronized wireless clock systems synchronized wireless clock systems %M
  5. find out this here find out this here %M

Calendar

«   12 2019   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

Bookmarks

  1. 위키피디아
  2. MysqlKorea
  3. 오라클 클럽
  4. API - Java
  5. Apache Hadoop API
  6. Apache Software Foundation
  7. HDFS 생태계 솔루션
  8. DNSBL - Spam Database Lookup
  9. Ready System
  10. Solaris Freeware
  11. Linux-Site
  12. 윈디하나의 솔라나라

Site Stats

TOTAL 2779020 HIT
TODAY 1213 HIT
YESTERDAY 532 HIT