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