Author: cbegin
Date: Mon Sep  7 07:18:40 2009
New Revision: 812018

URL: http://svn.apache.org/viewvc?rev=812018&view=rev
Log:
re-implemented primitive support

Modified:
    
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/NewResultSetHandler.java
    
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/builder/BlogMapper.xml
    
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/session/SqlSessionTest.java

Modified: 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/NewResultSetHandler.java
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/NewResultSetHandler.java?rev=812018&r1=812017&r2=812018&view=diff
==============================================================================
--- 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/NewResultSetHandler.java
 (original)
+++ 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/NewResultSetHandler.java
 Mon Sep  7 07:18:40 2009
@@ -24,10 +24,10 @@
   private final ParameterHandler parameterHandler;
   private final ResultHandler resultHandler;
   private final BoundSql boundSql;
-  private TypeHandlerRegistry typeHandlerRegistry;
+  private final TypeHandlerRegistry typeHandlerRegistry;
 
-  public NewResultSetHandler(Configuration configuration, MappedStatement 
mappedStatement, ParameterHandler parameterHandler, ResultHandler 
resultHandler, BoundSql boundSql, int offset, int limit) {
-    this.configuration = configuration;
+  public NewResultSetHandler(MappedStatement mappedStatement, ParameterHandler 
parameterHandler, ResultHandler resultHandler, BoundSql boundSql, int offset, 
int limit) {
+    this.configuration = mappedStatement.getConfiguration();
     this.mappedStatement = mappedStatement;
     this.rowLimit = new RowLimit(offset, limit);
     this.parameterHandler = parameterHandler;
@@ -162,7 +162,12 @@
     final Class resultType = resultMap.getType();
     final ObjectFactory objectFactory = configuration.getObjectFactory();
     final List<ResultMapping> constructorMappings = 
resultMap.getConstructorResultMappings();
-    if (constructorMappings.size() == 0) {
+    if (typeHandlerRegistry.hasTypeHandler(resultType)) {
+      final ResultSetMetaData rsmd = rs.getMetaData();
+      final String columnName = configuration.isUseColumnLabel() ? 
rsmd.getColumnLabel(1) : rsmd.getColumnName(1);
+      final TypeHandler typeHandler = 
typeHandlerRegistry.getTypeHandler(resultType);
+      return typeHandler.getResult(rs,columnName);
+    } else if (constructorMappings.size() == 0) {
       return objectFactory.create(resultType);
     } else {
       final List<Class> parameterTypes = new ArrayList<Class>();

Modified: 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/builder/BlogMapper.xml
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/builder/BlogMapper.xml?rev=812018&r1=812017&r2=812018&view=diff
==============================================================================
--- 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/builder/BlogMapper.xml
 (original)
+++ 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/builder/BlogMapper.xml
 Mon Sep  7 07:18:40 2009
@@ -22,6 +22,10 @@
     select * from Post where blog_id = #{blog_id}
   </select>
 
+  <select id="selectCountOfPosts" resultType="int">
+    select count(1) from post
+  </select>
+
   <resultMap id="joinedAuthor" type="domain.blog.Author">
     <id property="id" column="author_id"/>
     <result property="username" column="author_username"/>

Modified: 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/session/SqlSessionTest.java
URL: 
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/session/SqlSessionTest.java?rev=812018&r1=812017&r2=812018&view=diff
==============================================================================
--- 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/session/SqlSessionTest.java
 (original)
+++ 
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/session/SqlSessionTest.java
 Mon Sep  7 07:18:40 2009
@@ -34,6 +34,17 @@
   }
 
   @Test
+  public void shouldSelectCountOfPosts() throws Exception {
+    SqlSession session = sqlMapper.openSession();
+    try {
+      int count = (Integer) 
session.selectOne("domain.blog.mappers.BlogMapper.selectCountOfPosts");
+      assertEquals(5, count);
+    } finally {
+      session.close();
+    }
+  }
+
+  @Test
   public void shouldSelectOneAuthor() throws Exception {
     SqlSession session = sqlMapper.openSession();
     try {


Reply via email to