Author: cbegin
Date: Sat Dec 13 22:34:16 2008
New Revision: 726385

URL: http://svn.apache.org/viewvc?rev=726385&view=rev
Log:
fixed inline parameter parsing

Modified:
    ibatis/trunk/java/ibatis-3/TODO
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlSession.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlSessionFactory.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperParser.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/api/SqlSessionTest.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/AuthorMapper.xml

Modified: ibatis/trunk/java/ibatis-3/TODO
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/TODO?rev=726385&r1=726384&r2=726385&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/TODO (original)
+++ ibatis/trunk/java/ibatis-3/TODO Sat Dec 13 22:34:16 2008
@@ -1,3 +1,7 @@
+Known Issues
+  * Duplicate element IDs are clobbering each other in config
+  * Statement (other elements?) not found does not fail gracefully
+
 Core
  * Improved Error Messages
 

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlSession.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlSession.java?rev=726385&r1=726384&r2=726385&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlSession.java
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlSession.java
 Sat Dec 13 22:34:16 2008
@@ -16,11 +16,13 @@
   private Configuration configuration;
   private Executor executor;
 
+  private boolean autoCommit;
   private boolean dirty;
 
-  public DefaultSqlSession(Configuration configuration, Executor executor) {
+  public DefaultSqlSession(Configuration configuration, Executor executor, 
boolean autoCommit) {
     this.configuration = configuration;
     this.executor = executor;
+    this.autoCommit = autoCommit;
     this.dirty = false;
   }
 
@@ -91,7 +93,7 @@
 
   public void commit() {
     try {
-      executor.commit(dirty);
+      executor.commit(!autoCommit && dirty);
       dirty = false;
     } catch (SQLException e) {
       throw ExceptionFactory.wrapException("Error committing transaction.  
Cause: " + e, e);
@@ -100,7 +102,7 @@
 
   public void end() {
     try {
-      executor.rollback(dirty);
+      executor.rollback(!autoCommit && dirty);
       dirty = false;
     } catch (SQLException e) {
       throw ExceptionFactory.wrapException("Error rolling back transaction.  
Cause: " + e, e);

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlSessionFactory.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlSessionFactory.java?rev=726385&r1=726384&r2=726385&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlSessionFactory.java
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlSessionFactory.java
 Sat Dec 13 22:34:16 2008
@@ -43,7 +43,7 @@
       Connection connection = dataSource.getConnection();
       Transaction tx = transactionFactory.newTransaction(connection, 
autoCommit);
       Executor executor = configuration.newExecutor(tx,execType);
-      return new DefaultSqlSession(configuration, executor);
+      return new DefaultSqlSession(configuration, executor, autoCommit);
     } catch (SQLException e) {
       throw ExceptionFactory.wrapException("Error opening session.  Cause: " + 
e, e);
     }
@@ -65,7 +65,7 @@
       }
       Transaction tx = transactionFactory.newTransaction(connection, 
autoCommit);
       Executor executor = configuration.newExecutor(tx, execType);
-      return new DefaultSqlSession(configuration, executor);
+      return new DefaultSqlSession(configuration, executor, autoCommit);
     } catch (Exception e) {
       throw ExceptionFactory.wrapException("Error opening session.  Cause: " + 
e, e);
     }

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperParser.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperParser.java?rev=726385&r1=726384&r2=726385&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperParser.java
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/MapperParser.java
 Sat Dec 13 22:34:16 2008
@@ -284,7 +284,7 @@
     id = applyNamespace(id);
 
     String sql = context.getStringBody();
-    SqlSource sqlSource = new BasicSqlSource(sql);
+    SqlSource sqlSource = new SqlSourceParser(configuration).parse(context);
 
     MappedStatement.Builder statementBuilder = new 
MappedStatement.Builder(configuration, id, sqlSource);
     Integer fetchSize = context.getIntAttribute("fetchSize", null);

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/api/SqlSessionTest.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/api/SqlSessionTest.java?rev=726385&r1=726384&r2=726385&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/api/SqlSessionTest.java
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/api/SqlSessionTest.java
 Sat Dec 13 22:34:16 2008
@@ -44,4 +44,16 @@
     }
   }
 
+  @Test
+  public void shouldSelectOneAuthorWithInlineParams() throws Exception {
+    SqlSession session = sqlMapper.openSession();
+    try {
+      Author author = (Author) session.selectOne(
+          "com.domain.AuthorMapper.selectAuthorWithInlineParams", new 
Author(101));
+      Assert.assertEquals(101, author.getId());
+    } finally {
+      session.close();
+    }
+  }
+
 }

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/AuthorMapper.xml
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/AuthorMapper.xml?rev=726385&r1=726384&r2=726385&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/AuthorMapper.xml
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/AuthorMapper.xml
 Sat Dec 13 22:34:16 2008
@@ -18,4 +18,8 @@
     select * from author where id = ?
   </select>
 
+  <select id="selectAuthorWithInlineParams" parameterType="int" 
resultType="domain.blog.Author">
+    select * from author where id = #{id}
+  </select>
+
 </mapper>
\ No newline at end of file


Reply via email to