public void setAutoCommit(boolean b) { if (autoCommit == b) { return; } if (!getAutoCommit()) { commit(); } autoCommit = b; }
@Override public void closeConnection(Connection connection, Options options) { if (session.getAutoCommit()) { target.closeConnection(connection, options); } else { Connection contains = connectionMap.get(options.shardName); if (connection != contains) { target.closeConnection(connection, options); } } }
@Override public Connection getConnection(Options options) { Connection conn; if (session.getAutoCommit()) { conn = getRawConnection(options); } else { conn = getConnectionWithStrategy(options); } return conn; }
/** * @param options * @return * @throws SQLException */ private Connection getRawConnection(Options options) throws DbException { Connection conn = target.getConnection(options); try { if (conn.getAutoCommit() != session.getAutoCommit()) { conn.setAutoCommit(session.getAutoCommit()); } if (session.getIsolation() != 0) { if (conn.getTransactionIsolation() != session.getIsolation()) { conn.setTransactionIsolation(session.getIsolation()); } } if (conn.isReadOnly() != session.isReadOnly()) { conn.setReadOnly(session.isReadOnly()); } } catch (Exception e) { throw DbException.convert(e); } return conn; }
@Override public void close() { if (!closed) { try { if (!getAutoCommit()) { rollback(); } transaction.close(); database.removeSession(this); } finally { closed = true; } } }
Map<String, String> variables = server.getVariables(); if ("autocommit".equals(name)) { int value = session.getAutoCommit() ? 1 : 0; expr.putAttribute(EVAL_VALUE, String.valueOf(value)); } else if ("tx_isolation".equals(name)) {
break; case AUTOCOMMIT: result = ValueBoolean.get(session.getAutoCommit()); break; case CAST: