You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by cb...@apache.org on 2008/12/24 04:31:12 UTC

svn commit: r729208 - in /ibatis/trunk/java/ibatis-3/ibatis-3-core/src: main/java/org/apache/ibatis/api/defaults/ main/java/org/apache/ibatis/executor/ test/java/org/apache/ibatis/api/ test/java/org/apache/ibatis/parser/

Author: cbegin
Date: Tue Dec 23 19:31:12 2008
New Revision: 729208

URL: http://svn.apache.org/viewvc?rev=729208&view=rev
Log:
added delete test, cleanly close session, cleared local cache on commit/rollback

Modified:
    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/executor/BaseExecutor.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/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=729208&r1=729207&r2=729208&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 Tue Dec 23 19:31:12 2008
@@ -27,7 +27,7 @@
   }
 
   public Object selectOne(String statement) {
-    return selectOne(statement,null);
+    return selectOne(statement, null);
   }
 
   public Object selectOne(String statement, Object parameter) {
@@ -53,14 +53,14 @@
   public List selectList(String statement, Object parameter, int offset, int limit, ResultHandler handler) {
     try {
       MappedStatement ms = configuration.getMappedStatement(statement);
-      return executor.query(ms, parameter , offset, limit, handler);
+      return executor.query(ms, parameter, offset, limit, handler);
     } catch (SQLException e) {
       throw ExceptionFactory.wrapException("Error querying database.  Cause: " + e, e);
     }
   }
 
   public Object insert(String statement) {
-    return insert(statement,null);
+    return insert(statement, null);
   }
 
   public Object insert(String statement, Object parameter) {
@@ -69,7 +69,7 @@
   }
 
   public int update(String statement) {
-    return update(statement,null);
+    return update(statement, null);
   }
 
   public int update(String statement, Object parameter) {
@@ -84,11 +84,11 @@
   }
 
   public int delete(String statement) {
-    return update(statement,null);
+    return update(statement, null);
   }
 
   public int delete(String statement, Object parameter) {
-    return update(statement,parameter);
+    return update(statement, parameter);
   }
 
   public void commit() {
@@ -111,7 +111,13 @@
 
   public void close() {
     try {
-      executor.close();
+      try {
+        if (dirty) {
+          this.end();
+        }
+      } finally {
+        executor.close();
+      }
     } catch (Exception e) {
       throw ExceptionFactory.wrapException("Error closing transaction.  Cause: " + e, e);
     }

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BaseExecutor.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BaseExecutor.java?rev=729208&r1=729207&r2=729208&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BaseExecutor.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/BaseExecutor.java Tue Dec 23 19:31:12 2008
@@ -109,6 +109,7 @@
   }
 
   public void commit(boolean required) throws SQLException {
+    localCache.clear();
     flushStatements();
     if (required) {
       transaction.commit();
@@ -116,6 +117,7 @@
   }
 
   public void rollback(boolean required) throws SQLException {
+    localCache.clear();
     if (required) {
       transaction.rollback();
     }

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=729208&r1=729207&r2=729208&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 Tue Dec 23 19:31:12 2008
@@ -63,6 +63,7 @@
       Author expected = new Author(500, "cbegin", "******", "cbegin@somewhere.com", "Something...", null);
       session.insert("com.domain.AuthorMapper.insertAuthor", expected);
       Author actual = (Author) session.selectOne("com.domain.AuthorMapper.selectAuthor", new Author(500));
+      Assert.assertNotNull(actual);
       Assert.assertEquals(expected.getId(), actual.getId());
       Assert.assertEquals(expected.getUsername(), actual.getUsername());
       Assert.assertEquals(expected.getPassword(), actual.getPassword());
@@ -73,4 +74,26 @@
     }
   }
 
+  @Test
+  public void shouldDeleteAuthor() throws Exception {
+    SqlSession session = sqlMapper.openSession();
+    try {
+      final int id = 102;
+
+      List<Author> authors = session.selectList("com.domain.AuthorMapper.selectAuthor", id);
+      Assert.assertEquals(1,authors.size());
+
+      session.delete("com.domain.AuthorMapper.deleteAuthor", id);
+      authors = session.selectList("com.domain.AuthorMapper.selectAuthor", id);
+      Assert.assertEquals(0,authors.size());
+
+      session.end();
+      authors = session.selectList("com.domain.AuthorMapper.selectAuthor", id);
+      Assert.assertEquals(1,authors.size());
+
+    } 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=729208&r1=729207&r2=729208&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 Tue Dec 23 19:31:12 2008
@@ -6,25 +6,37 @@
 
 <mapper namespace="com.domain.AuthorMapper">
 
-  <select id="selectAllAuthors" resultType="domain.blog.Author">
+  <select id="selectAllAuthors"
+          resultType="domain.blog.Author">
     select * from author
   </select>
 
-  <parameterMap id="selectAuthor" type="domain.blog.Author">
+  <parameterMap id="selectAuthor"
+                type="domain.blog.Author">
     <parameter property="id" />
   </parameterMap>
 
-  <select id="selectAuthor" parameterMap="selectAuthor" resultType="domain.blog.Author">
+  <select id="selectAuthor"
+          parameterMap="selectAuthor"
+          resultType="domain.blog.Author">
     select * from author where id = ?
   </select>
 
-  <select id="selectAuthorWithInlineParams" parameterType="int" resultType="domain.blog.Author">
+  <select id="selectAuthorWithInlineParams"
+          parameterType="int"
+          resultType="domain.blog.Author">
     select * from author where id = #{id}
   </select>
 
-  <insert id="insertAuthor" parameterType="domain.blog.Author">
+  <insert id="insertAuthor"
+          parameterType="domain.blog.Author">
     insert into Author (id,username,password,email,bio)
     values (#{id},#{username},#{password},#{email},#{bio})
   </insert>
 
+  <delete id="deleteAuthor"
+          parameterType="int">
+    delete from Author where id = #{id}
+  </delete>
+
 </mapper>
\ No newline at end of file