@Override public int[] run(Connection conn) throws SQLException { return batchUpdate(conn, sql, params); } });
public <T> T query(final String sql, final ResultSetHandler<T> rsh, final Object... params) throws SQLException { return execute(true, new SqlExecutor<T>() { @Override public T run(Connection conn) throws SQLException { return query(conn, sql, rsh, params); } }); }
public void executeInTransaction(SqlExecutorVoid executor) { executeInTransaction(getWrapperExecutor(executor)); }
@Override public int delete(String sql, Object... params) throws SQLException { return update(sql, params); }
@Override public T run(Connection conn) throws SQLException { return query(conn, sql, rsh, params); } });
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 static SqlTemplate create(Config config) { DataSourceProvider dataSourceProvider = ServiceLoader.load(DataSourceProvider.class, config); DataSource dataSource = dataSourceProvider.getDataSource(config); SqlTemplate sqlTemplate = HOLDER.get(dataSource); if (sqlTemplate != null) { return sqlTemplate; } synchronized (HOLDER) { sqlTemplate = HOLDER.get(dataSource); if (sqlTemplate != null) { return sqlTemplate; } sqlTemplate = new SqlTemplateImpl(dataSource); HOLDER.putIfAbsent(dataSource, sqlTemplate); return sqlTemplate; } }
@Override public Integer run(Connection conn) throws SQLException { return update(conn, sql, params); } });
@Override public T run(Connection conn) throws SQLException { return query(conn, sql, rsh, params); } });
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 static SqlTemplate create(Config config) { DataSourceProvider dataSourceProvider = ServiceLoader.load(DataSourceProvider.class, config); DataSource dataSource = dataSourceProvider.getDataSource(config); SqlTemplate sqlTemplate = HOLDER.get(dataSource); if (sqlTemplate != null) { return sqlTemplate; } synchronized (HOLDER) { sqlTemplate = HOLDER.get(dataSource); if (sqlTemplate != null) { return sqlTemplate; } sqlTemplate = new SqlTemplateImpl(dataSource); HOLDER.putIfAbsent(dataSource, sqlTemplate); return sqlTemplate; } }
@Override public Integer run(Connection conn) throws SQLException { return update(conn, sql, params); } });
public void executeInTransaction(SqlExecutorVoid executor) { executeInTransaction(getWrapperExecutor(executor)); }
public int[] batchUpdate(final String sql, final Object[][] params) throws SQLException { return execute(false, new SqlExecutor<int[]>() { @Override public int[] run(Connection conn) throws SQLException { return batchUpdate(conn, sql, params); } }); }
public <T> T queryForValue(final String sql, final Object... params) throws SQLException { return query(sql, new ScalarHandler<T>(), params); }
@Override public int[] run(Connection conn) throws SQLException { return batchUpdate(conn, sql, params); } });
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); } }