달력

52024  이전 다음

  • 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

'소식'에 해당되는 글 1건

  1. 2009.02.15 [ibatis] 메일링리스트를 통해서 본 3.0 소식 2
원래 작년에 베타버전이 릴리즈되어야 할 터였는데.. 아직도 그다지 소식이 없습니다.
간혹 메일링리스트를 통해 한번씩 언급이 되기는 하지만 이 역시 .. 극히 적죠..
메일링리스트를 볼때.. 몇가지는 알수 있을듯 합니다.

▣ iBATIS 2.0
1. 계획했던 모든 기능이 완성되어 있어 더이상의 기능추가는 없다. 단 유지보수및 버그수정을 한 버전은 마이너로 릴리즈될수 있다.


▣ iBATIS 3.0
1. http://opensource.atlassian.com/confluence/oss/display/IBATIS/iBATIS+3.0+Whiteboard 를 통해 3.0에서 구현할 많은 아이디어를 받았는데, 현재 이 화이트보드 페이지는 너무 복잡해서 더이상 보지(?)않는다고 합니다. 하지만 3.0을 구현하기 위한 많은 아이디어는 충분히 모았다고 생각한다네요.
2. 조만간 베타버전을 릴리즈 할 예정이며 소스는 http://svn.apache.org/repos/asf/ibatis/trunk/java/ibatis-3/ 에서 받을수 있습니다.
3. 코어는 이미 완성되어는데, XML은 새로운 형태로 구현되었고 좀더 자세한 정보를 가진다고 합니다.
그외 매핑, 자동매핑, 조인매핑, 캐싱, 트랜잭션 관리, 배치처리, 자동커밋과 그외 최근에 도입된 많은 기술들이 구현되었습니다.
4. 구현이 남아 있는 부분은 다음과 같습니다.
* 인터페이스 바인딩
* 애노테이션으로 설정하기
* 새로운 동적 SQL

이 정도네요..

▣ 메서드명
기존에 2.0 버전은 com.ibatis.sqlmap.client.SqlMapClient 인터페이스의 delete, executeBatch, executeBatchDetailed, insert, queryForList, queryForMap, queryForObject,  queryForPaginatedList, queryWithRowHandler, startBatch, update 가 제공되었습니다만.
3.0에는 org.apache.ibatis.api.SqlSession 인터페이스가 메서드를 제공합니다.


▣ MapperConfig.xml
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE configuration
    PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"
    "http://ibatis.apache.org/dtd/ibatis-config-3.dtd">

<configuration>

  <properties resource="org/apache/ibatis/parser/mapper.properties">
    <property name="driver" value="org.apache.derby.jdbc.EmbeddedDriver"/>
  </properties>

  <settings>
    <setting name="cacheEnabled" value="true"/>
    <setting name="lazyLoadingEnabled" value="true"/>
    <setting name="multipleResultSetsEnabled" value="true"/>
    <setting name="useColumnLabel" value="true"/>
    <setting name="enhancementEnabled" value="false"/>
    <setting name="generatedKeysEnabled" value="false"/>
    <setting name="defaultExecutorType" value="SIMPLE"/>
    <setting name="defaultStatementTimeout" value="25000"/>
  </settings>

  <typeAliases>
    <typeAlias alias="Author" type="domain.blog.Author"/>
  </typeAliases>

  <typeHandlers>
    <typeHandler javaType="String" jdbcType="VARCHAR" handler="org.apache.ibatis.parser.ExampleTypeHandler"/>
  </typeHandlers>

  <objectFactory type="org.apache.ibatis.parser.ExampleObjectFactory">
    <property name="objectFactoryProperty" value="100"/>
  </objectFactory>

  <plugins>
    <plugin interceptor="org.apache.ibatis.parser.ExamplePlugin">
      <property name="pluginProperty" value="100"/>
    </plugin>
  </plugins>

  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC">
        <property name="" value=""/>
      </transactionManager>
      <dataSource type="UNPOOLED">
        <property name="driver" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
      </dataSource>
    </environment>
  </environments>

  <mappers>
    <!-- mapperXML vs. mapperClass-->
    <mapper resource="org/apache/ibatis/parser/AuthorMapper.xml"/>
  </mappers>
</configuration>

▣ 다양한 ResultMap 설정
<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper
    PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
    "http://ibatis.apache.org/dtd/ibatis-mapper-3.dtd">

<mapper namespace="com.domain.BlogMapper">

  <resultMap id="blogWithPosts" type="Blog">
    <id property="id" column="id"/>
    <result property="title" column="title"/>
    <association property="author" column="author_id" select="com.domain.AuthorMapper.selectAuthorWithInlineParams"/>
    <collection property="posts" column="id" select="selectPostsForBlog"/>
  </resultMap>

  <resultMap id="joinedPost" type="domain.blog.Post">
    <id property="id" column="post_id"/>
    <result property="subject" column="post_subject"/>
    <association property="author" column="post_author_id" resultMap="joinedAuthor"/>
    <collection property="comments" column="post_id" resultMap="joinedComment"/>
    <collection property="tags" column="post_id" resultMap="joinedTag"/>
    <discriminator javaType="int" column="draft">
      <case value="1" resultMap="draftPost"/>
    </discriminator>
  </resultMap>

  <resultMap id="selectImmutableAuthor" type="domain.blog.ImmutableAuthor">
    <constructor>
      <id column="id" property="id"/>
      <result property="username" column="username"/>
      <result property="password" column="password"/>
      <result property="email" column="email"/>
      <result property="bio" column="bio"/>
      <result property="favouriteSection" column="favourite_section"/>
    </constructor>
  </resultMap>

</mapper>

관련 소식은 http://www.mail-archive.com/user-java@ibatis.apache.org/msg13225.html 에서 다시 확인하실수 있습니다.

'자바' 카테고리의 다른 글

[jersey] 1.0.2 릴리즈  (0) 2009.03.01
[ibatis] 개발자 가이드 업데이트  (0) 2009.02.28
[자바] 인코딩  (1) 2009.01.30
[eclipse] 2008년 정리  (1) 2009.01.16
[groovy] HTTPBuilder module 사용하기  (0) 2009.01.11
Posted by fromm0
|