public <T> T execute(boolean isReadOnly, SqlExecutor<T> executor) throws SQLException { Connection conn = null; try { conn = dataSource.getConnection(); if (isReadOnly) { conn.setReadOnly(true); } return executor.run(conn); } finally { close(conn); } }
public <T> T execute(boolean isReadOnly, SqlExecutor<T> executor) throws SQLException { Connection conn = null; try { conn = dataSource.getConnection(); if (isReadOnly) { conn.setReadOnly(true); } return executor.run(conn); } finally { close(conn); } }
public <T> T executeInTransaction(SqlExecutor<T> executor) { Connection conn = null; try { conn = TxConnectionFactory.getTxConnection(dataSource); T res = executor.run(conn); conn.commit(); return res; } catch (Error e) { throw rollback(conn, e); } catch (Exception e) { throw rollback(conn, e); } finally { TxConnectionFactory.closeTx(conn); } }
public <T> T executeInTransaction(SqlExecutor<T> executor) { Connection conn = null; try { conn = TxConnectionFactory.getTxConnection(dataSource); T res = executor.run(conn); conn.commit(); return res; } catch (Error e) { throw rollback(conn, e); } catch (Exception e) { throw rollback(conn, e); } finally { TxConnectionFactory.closeTx(conn); } }
public <T> T execute(boolean isReadOnly, SqlExecutor<T> executor) throws SQLException { Connection conn = null; try { conn = dataSource.getConnection(); if (isReadOnly) { conn.setReadOnly(true); } return executor.run(conn); } finally { close(conn); } }
public <T> T executeInTransaction(SqlExecutor<T> executor) { Connection conn = null; try { conn = TxConnectionFactory.getTxConnection(dataSource); T res = executor.run(conn); conn.commit(); return res; } catch (Error e) { throw rollback(conn, e); } catch (Exception e) { throw rollback(conn, e); } finally { TxConnectionFactory.closeTx(conn); } }