Author: cbegin
Date: Sat Dec 13 14:51:46 2008
New Revision: 726284
URL: http://svn.apache.org/viewvc?rev=726284&view=rev
Log:
added insert/update/delete and commit/end to the SqlSession interface and
implementation
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/SqlSession.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/SqlSessionFactory.java
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/api/exceptions/ExceptionFactory.java
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/SqlSession.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/SqlSession.java?rev=726284&r1=726283&r2=726284&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/SqlSession.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/SqlSession.java
Sat Dec 13 14:51:46 2008
@@ -8,10 +8,23 @@
Object selectOne(String statement);
Object selectOne(String statement, Object parameter);
+
List selectList(String statement);
List selectList(String statement, Object parameter);
List selectList(String statement, Object parameter, int offset, int limit);
List selectList(String statement, Object parameter, int offset, int limit,
ResultHandler handler);
+
+ Object insert(String statement);
+ Object insert(String statement, Object parameter);
+
+ int update(String statement);
+ int update(String statement, Object parameter);
+
+ int delete(String statement);
+ int delete(String statement, Object parameter);
+
+ void commit();
+ void end();
void close();
-
+
}
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/SqlSessionFactory.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/SqlSessionFactory.java?rev=726284&r1=726283&r2=726284&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/SqlSessionFactory.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/SqlSessionFactory.java
Sat Dec 13 14:51:46 2008
@@ -10,6 +10,7 @@
SqlSession openSession(boolean autoCommit);
SqlSession openSession(ExecutorType execType);
SqlSession openSession(Connection connection);
+ SqlSession openSession(boolean autoCommit, ExecutorType execType);
SqlSession openSession(Connection connection, ExecutorType execType);
Configuration getConfiguration();
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=726284&r1=726283&r2=726284&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 14:51:46 2008
@@ -16,9 +16,12 @@
private Configuration configuration;
private Executor executor;
+ private boolean dirty;
+
public DefaultSqlSession(Configuration configuration, Executor executor) {
this.configuration = configuration;
this.executor = executor;
+ this.dirty = false;
}
public Object selectOne(String statement) {
@@ -50,28 +53,67 @@
MappedStatement ms = configuration.getMappedStatement(statement);
return executor.query(ms, parameter , offset, limit, handler);
} catch (SQLException e) {
- throw ExceptionFactory.wrapSQLException("Error querying database.
Cause: " + e, e);
+ throw ExceptionFactory.wrapException("Error querying database. Cause: "
+ e, e);
}
}
- public void close() {
- executor.close();
+ public Object insert(String statement) {
+ return insert(statement,null);
+ }
+
+ public Object insert(String statement, Object parameter) {
+ //TODO: Return selectKey or autogen key.
+ return update(statement,null);
+ }
+
+ public int update(String statement) {
+ return update(statement,null);
+ }
+
+ public int update(String statement, Object parameter) {
+ try {
+ //TODO: Need commitRequired option at the statement level
+ dirty = true;
+ MappedStatement ms = configuration.getMappedStatement(statement);
+ return executor.update(ms, parameter);
+ } catch (SQLException e) {
+ throw ExceptionFactory.wrapException("Error updating database. Cause: "
+ e, e);
+ }
+ }
+
+ public int delete(String statement) {
+ return update(statement,null);
+ }
+
+ public int delete(String statement, Object parameter) {
+ return update(statement,null);
}
public void commit() {
try {
- executor.commit(false);
+ executor.commit(dirty);
+ dirty = false;
} catch (SQLException e) {
- throw ExceptionFactory.wrapSQLException("Error committing transaction.
Cause: " + e, e);
+ throw ExceptionFactory.wrapException("Error committing transaction.
Cause: " + e, e);
}
}
- public void rollback() {
+ public void end() {
try {
- executor.rollback(false);
+ executor.rollback(dirty);
+ dirty = false;
} catch (SQLException e) {
- throw ExceptionFactory.wrapSQLException("Error rolling back transaction.
Cause: " + e, e);
+ throw ExceptionFactory.wrapException("Error rolling back transaction.
Cause: " + e, e);
}
}
+ public void close() {
+ try {
+ 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/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=726284&r1=726283&r2=726284&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 14:51:46 2008
@@ -45,7 +45,7 @@
Executor executor = configuration.newExecutor(tx,execType);
return new DefaultSqlSession(configuration, executor);
} catch (SQLException e) {
- throw ExceptionFactory.wrapSQLException("Error opening session. Cause:
" + e, e);
+ throw ExceptionFactory.wrapException("Error opening session. Cause: " +
e, e);
}
}
@@ -54,17 +54,21 @@
}
public SqlSession openSession(Connection connection, ExecutorType execType) {
- boolean autoCommit;
try {
- autoCommit = connection.getAutoCommit();
- } catch (SQLException e) {
- // Failover to true, as most poor drivers
- // or databases won't support transactions
- autoCommit = true;
+ boolean autoCommit;
+ try {
+ autoCommit = connection.getAutoCommit();
+ } catch (SQLException e) {
+ // Failover to true, as most poor drivers
+ // or databases won't support transactions
+ autoCommit = true;
+ }
+ Transaction tx = transactionFactory.newTransaction(connection,
autoCommit);
+ Executor executor = configuration.newExecutor(tx, execType);
+ return new DefaultSqlSession(configuration, executor);
+ } catch (Exception e) {
+ throw ExceptionFactory.wrapException("Error opening session. Cause: " +
e, e);
}
- Transaction tx = transactionFactory.newTransaction(connection, autoCommit);
- Executor executor = configuration.newExecutor(tx, execType);
- return new DefaultSqlSession(configuration, executor);
}
public Configuration getConfiguration() {
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/exceptions/ExceptionFactory.java
URL:
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/exceptions/ExceptionFactory.java?rev=726284&r1=726283&r2=726284&view=diff
==============================================================================
---
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/exceptions/ExceptionFactory.java
(original)
+++
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/exceptions/ExceptionFactory.java
Sat Dec 13 14:51:46 2008
@@ -4,7 +4,7 @@
public class ExceptionFactory {
- public static RuntimeException wrapSQLException(String message, SQLException
e) {
+ public static RuntimeException wrapException(String message, Exception e) {
return new RuntimeSqlException(message, e);
}