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 {