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