You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by bv...@apache.org on 2012/08/06 21:25:57 UTC
svn commit: r1369934 -
/camel/trunk/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/MyBatisProducer.java
Author: bvahdat
Date: Mon Aug 6 19:25:57 2012
New Revision: 1369934
URL: http://svn.apache.org/viewvc?rev=1369934&view=rev
Log:
Refactored to avoid code-duplication (inside the try/catch/finally blocks) for the transaction demarcation of the doXXX methods.
Modified:
camel/trunk/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/MyBatisProducer.java
Modified: camel/trunk/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/MyBatisProducer.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/MyBatisProducer.java?rev=1369934&r1=1369933&r2=1369934&view=diff
==============================================================================
--- camel/trunk/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/MyBatisProducer.java (original)
+++ camel/trunk/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/MyBatisProducer.java Mon Aug 6 19:25:57 2012
@@ -24,7 +24,6 @@ import org.apache.camel.impl.DefaultProd
import org.apache.camel.util.ExchangeHelper;
import org.apache.camel.util.ObjectHelper;
import org.apache.ibatis.session.SqlSession;
-import org.apache.ibatis.session.SqlSessionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -44,39 +43,32 @@ public class MyBatisProducer extends Def
}
public void process(Exchange exchange) throws Exception {
- switch (endpoint.getStatementType()) {
- case SelectOne:
- doSelectOne(exchange); break;
- case SelectList:
- doSelectList(exchange); break;
- case Insert:
- doInsert(exchange); break;
- case InsertList:
- doInsertList(exchange); break;
- case Update:
- doUpdate(exchange); break;
- case Delete:
- doDelete(exchange); break;
- default:
- throw new IllegalArgumentException("Unsupported statementType: " + endpoint.getStatementType());
- }
- }
+ SqlSession session = endpoint.getSqlSessionFactory().openSession();
- private void doSelectOne(Exchange exchange) throws Exception {
- SqlSessionFactory client = endpoint.getSqlSessionFactory();
- SqlSession session = client.openSession();
try {
- Object result;
- Object in = exchange.getIn().getBody();
- if (in != null) {
- LOG.trace("SelectOne: {} using statement: {}", in, statement);
- result = session.selectOne(statement, in);
- } else {
- LOG.trace("SelectOne using statement: {}", statement);
- result = session.selectOne(statement);
+ switch (endpoint.getStatementType()) {
+ case SelectOne:
+ doSelectOne(exchange, session);
+ break;
+ case SelectList:
+ doSelectList(exchange, session);
+ break;
+ case Insert:
+ doInsert(exchange, session);
+ break;
+ case InsertList:
+ doInsertList(exchange, session);
+ break;
+ case Update:
+ doUpdate(exchange, session);
+ break;
+ case Delete:
+ doDelete(exchange, session);
+ break;
+ default:
+ throw new IllegalArgumentException("Unsupported statementType: " + endpoint.getStatementType());
}
- doProcessResult(exchange, result);
session.commit();
} catch (Exception e) {
session.rollback();
@@ -86,143 +78,103 @@ public class MyBatisProducer extends Def
}
}
- private void doSelectList(Exchange exchange) throws Exception {
- SqlSessionFactory client = endpoint.getSqlSessionFactory();
- SqlSession session = client.openSession();
- try {
- Object result;
- Object in = exchange.getIn().getBody();
- if (in != null) {
- LOG.trace("SelectList: {} using statement: {}", in, statement);
- result = session.selectList(statement, in);
- } else {
- LOG.trace("SelectList using statement: {}", statement);
- result = session.selectList(statement);
- }
-
- doProcessResult(exchange, result);
- session.commit();
- } catch (Exception e) {
- session.rollback();
- throw e;
- } finally {
- session.close();
+ private void doSelectOne(Exchange exchange, SqlSession session) throws Exception {
+ Object result;
+ Object in = exchange.getIn().getBody();
+ if (in != null) {
+ LOG.trace("SelectOne: {} using statement: {}", in, statement);
+ result = session.selectOne(statement, in);
+ } else {
+ LOG.trace("SelectOne using statement: {}", statement);
+ result = session.selectOne(statement);
}
- }
- private void doInsert(Exchange exchange) throws Exception {
- SqlSessionFactory client = endpoint.getSqlSessionFactory();
- SqlSession session = client.openSession();
- try {
- Object result;
- Object in = exchange.getIn().getBody();
- if (in != null) {
- // lets handle arrays or collections of objects
- Iterator<?> iter = ObjectHelper.createIterator(in);
- while (iter.hasNext()) {
- Object value = iter.next();
- LOG.trace("Inserting: {} using statement: {}", value, statement);
- result = session.insert(statement, value);
- doProcessResult(exchange, result);
- }
- } else {
- LOG.trace("Inserting using statement: {}", statement);
- result = session.insert(statement);
- doProcessResult(exchange, result);
- }
+ doProcessResult(exchange, result);
+ }
- session.commit();
- } catch (Exception e) {
- session.rollback();
- throw e;
- } finally {
- session.close();
+ private void doSelectList(Exchange exchange, SqlSession session) throws Exception {
+ Object result;
+ Object in = exchange.getIn().getBody();
+ if (in != null) {
+ LOG.trace("SelectList: {} using statement: {}", in, statement);
+ result = session.selectList(statement, in);
+ } else {
+ LOG.trace("SelectList using statement: {}", statement);
+ result = session.selectList(statement);
}
+
+ doProcessResult(exchange, result);
}
- private void doInsertList(Exchange exchange) throws Exception {
- SqlSessionFactory client = endpoint.getSqlSessionFactory();
- SqlSession session = client.openSession();
- try {
- Object result;
- Object in = exchange.getIn().getBody();
- if (in != null) {
- // just pass in the body as Object and allow MyBatis to iterate using its own foreach statement
- LOG.trace("Inserting: {} using statement: {}", in, statement);
- result = session.insert(statement, in);
- doProcessResult(exchange, result);
- } else {
- LOG.trace("Inserting using statement: {}", statement);
- result = session.insert(statement);
+ private void doInsert(Exchange exchange, SqlSession session) throws Exception {
+ Object result;
+ Object in = exchange.getIn().getBody();
+ if (in != null) {
+ // lets handle arrays or collections of objects
+ Iterator<?> iter = ObjectHelper.createIterator(in);
+ while (iter.hasNext()) {
+ Object value = iter.next();
+ LOG.trace("Inserting: {} using statement: {}", value, statement);
+ result = session.insert(statement, value);
doProcessResult(exchange, result);
}
+ } else {
+ LOG.trace("Inserting using statement: {}", statement);
+ result = session.insert(statement);
+ doProcessResult(exchange, result);
+ }
+ }
- session.commit();
- } catch (Exception e) {
- session.rollback();
- throw e;
- } finally {
- session.close();
+ private void doInsertList(Exchange exchange, SqlSession session) throws Exception {
+ Object result;
+ Object in = exchange.getIn().getBody();
+ if (in != null) {
+ // just pass in the body as Object and allow MyBatis to iterate using its own foreach statement
+ LOG.trace("Inserting: {} using statement: {}", in, statement);
+ result = session.insert(statement, in);
+ doProcessResult(exchange, result);
+ } else {
+ LOG.trace("Inserting using statement: {}", statement);
+ result = session.insert(statement);
+ doProcessResult(exchange, result);
}
}
- private void doUpdate(Exchange exchange) throws Exception {
- SqlSessionFactory client = endpoint.getSqlSessionFactory();
- SqlSession session = client.openSession();
- try {
- Object result;
- Object in = exchange.getIn().getBody();
- if (in != null) {
- // lets handle arrays or collections of objects
- Iterator<?> iter = ObjectHelper.createIterator(in);
- while (iter.hasNext()) {
- Object value = iter.next();
- LOG.trace("Updating: {} using statement: {}", value, statement);
- result = session.update(statement, value);
- doProcessResult(exchange, result);
- }
- } else {
- LOG.trace("Updating using statement: {}", statement);
- result = session.update(statement);
+ private void doUpdate(Exchange exchange, SqlSession session) throws Exception {
+ Object result;
+ Object in = exchange.getIn().getBody();
+ if (in != null) {
+ // lets handle arrays or collections of objects
+ Iterator<?> iter = ObjectHelper.createIterator(in);
+ while (iter.hasNext()) {
+ Object value = iter.next();
+ LOG.trace("Updating: {} using statement: {}", value, statement);
+ result = session.update(statement, value);
doProcessResult(exchange, result);
}
-
- session.commit();
- } catch (Exception e) {
- session.rollback();
- throw e;
- } finally {
- session.close();
+ } else {
+ LOG.trace("Updating using statement: {}", statement);
+ result = session.update(statement);
+ doProcessResult(exchange, result);
}
}
- private void doDelete(Exchange exchange) throws Exception {
- SqlSessionFactory client = endpoint.getSqlSessionFactory();
- SqlSession session = client.openSession();
- try {
- Object result;
- Object in = exchange.getIn().getBody();
- if (in != null) {
- // lets handle arrays or collections of objects
- Iterator<?> iter = ObjectHelper.createIterator(in);
- while (iter.hasNext()) {
- Object value = iter.next();
- LOG.trace("Deleting: {} using statement: {}", value, statement);
- result = session.delete(statement, value);
- doProcessResult(exchange, result);
- }
- } else {
- LOG.trace("Deleting using statement: {}", statement);
- result = session.delete(statement);
+ private void doDelete(Exchange exchange, SqlSession session) throws Exception {
+ Object result;
+ Object in = exchange.getIn().getBody();
+ if (in != null) {
+ // lets handle arrays or collections of objects
+ Iterator<?> iter = ObjectHelper.createIterator(in);
+ while (iter.hasNext()) {
+ Object value = iter.next();
+ LOG.trace("Deleting: {} using statement: {}", value, statement);
+ result = session.delete(statement, value);
doProcessResult(exchange, result);
}
-
- session.commit();
- } catch (Exception e) {
- session.rollback();
- throw e;
- } finally {
- session.close();
+ } else {
+ LOG.trace("Deleting using statement: {}", statement);
+ result = session.delete(statement);
+ doProcessResult(exchange, result);
}
}