@Override public void execute(Connection conn) { JdbcTemplate jt = JuConnUtils.asJdbcTemplate(conn); res.setValue(jt.queryForObject(sql, requiredType)); } });
@Override public void execute(Connection conn) { JdbcTemplate jt = JuConnUtils.asJdbcTemplate(conn); for (String sequence : getSequenceNames()) { // We'll just drop and recreate the sequence. jt.execute("drop sequence " + sequence); jt.execute(String.format("create sequence %s start with %d", sequence, val)); } } });
@Override public void execute(Connection conn) { JdbcTemplate jt = JuConnUtils.asJdbcTemplate(conn); jt.execute(String.format("DROP USER %s CASCADE", schemaInfo.getName())); } });
@Override public void execute(Connection conn) { JdbcTemplate jt = JuConnUtils.asJdbcTemplate(conn); jt.execute(String.format("DROP SCHEMA `%s`", schemaInfo.getName())); for (String user : users) { int cnt = jt.queryForInt(String.format("select count(*) from mysql.user where user = '%s'", user)); if (cnt > 0) { jt.execute(String.format("DROP USER `%s`", user)); } } } });
@Override public void execute(Connection conn) { JdbcTemplate jt = JuConnUtils.asJdbcTemplate(conn); // Reset autoincrement values List<Map<String, Object>> res = jt.queryForList("select c.TABLE_NAME, c.COLUMN_NAME " + "from information_schema.columns c " + "where c.EXTRA='auto_increment'"); //c.TABLE_NAME='Player'" for (Map<String, Object> row : res) { String tableName = row.get("TABLE_NAME").toString(); String columnName = row.get("COLUMN_NAME").toString(); logger.debug(String.format("Restarting ID column %s.%s with %d", tableName, columnName, val)); jt.execute(String.format("alter table %s auto_increment = %d" , tableName , val)); } } });
@Override public void execute(Connection conn) { JdbcTemplate jt = JuConnUtils.asJdbcTemplate(conn); // Reset autoincrement values // Reset autoincrement values List<Map<String, Object>> res = jt.queryForList("select c.TABLE_NAME, c.COLUMN_NAME " + // , c.* " + "from information_schema.columns c " + "where c.IDENTITY_GENERATION is not null");// c.TABLE_NAME='PLAYER'"); for (Map<String, Object> row : res) { String tableName = row.get("TABLE_NAME").toString(); String columnName = row.get("COLUMN_NAME").toString(); logger.debug(String.format("Restarting ID column %s.%s with %d", tableName, columnName, val)); jt.execute(String.format("alter table %s alter column %s RESTART WITH %d" , tableName , columnName , val)); } // Reset sequences. Auto increment columns are internally implemented by sequences, too (named SYSTEM_SEQUENCE_...), // so resetting all sequences will also cause the identity columns to be resetted for (final String sequenceName : getSequenceNames()) { logger.debug(String.format("Restarting sequence %s with %d", sequenceName, val)); jt.execute(String.format("alter sequence %s restart with %d increment by %d" , sequenceName , val , 1)); } } });
@Override public void execute(Connection conn) { JdbcTemplate jt = JuConnUtils.asJdbcTemplate(conn);
@Override public void execute(Connection conn) { JdbcTemplate jt = JuConnUtils.asJdbcTemplate(conn); res.setValue(jt.queryForList(sql, listType)); } });
@Override public void execute(Connection conn) { JdbcTemplate jt = JuConnUtils.asJdbcTemplate(conn); jt.execute(String.format("CREATE SCHEMA `%s`", builder.getName())); // Create a user as well if specified if (!StringUtils.isEmpty(builder.getUserName())) { jt.execute(String.format("CREATE USER `%s` identified by '%s'", builder.getUserName(), builder.getPassword())); // Grant all permissions for the created Schema to the user jt.execute(String.format("GRANT ALL ON `%s`.* TO `%s`", builder.getName(), builder.getUserName())); } } });
@Override public void execute(Connection conn) { JdbcTemplate jt = JuConnUtils.asJdbcTemplate(conn); // Create user String tableSpace = "USERS"; XString xs = new XString(); xs.addFormatted("CREATE USER %s IDENTIFIED BY %s", builder.getName(), builder.getPassword()); xs.addFormatted(" DEFAULT TABLESPACE %s", tableSpace); xs.addFormatted(" QUOTA UNLIMITED ON %s", tableSpace); jt.execute(xs.toString()); // Grants if (builder.isDefaultGrants()) { jt.execute(String.format("GRANT CREATE SESSION TO %s", builder.getName())); jt.execute(String.format("GRANT CREATE TABLE TO %s", builder.getName())); jt.execute(String.format("GRANT CREATE VIEW TO %s", builder.getName())); jt.execute(String.format("GRANT CREATE ANY TRIGGER TO %s", builder.getName())); jt.execute(String.format("GRANT CREATE ANY PROCEDURE TO %s", builder.getName())); jt.execute(String.format("GRANT CREATE SEQUENCE TO %s", builder.getName())); jt.execute(String.format("GRANT CREATE SYNONYM TO %s", builder.getName())); } // JTA recovery grants // (see http://docs.codehaus.org/display/BTM/FAQ#FAQ-WhyisOraclethrowingaXAExceptionduringinitializationofmydatasource?) if (builder.isJtaRecoveryGrants()) { jt.execute(String.format("GRANT SELECT ON SYS.DBA_PENDING_TRANSACTIONS TO %s", builder.getName())); jt.execute(String.format("GRANT SELECT ON SYS.PENDING_TRANS$ TO %s", builder.getName())); jt.execute(String.format("GRANT SELECT ON SYS.DBA_2PC_PENDING TO %s", builder.getName())); jt.execute(String.format("GRANT EXECUTE ON SYS.DBMS_SYSTEM TO %s", builder.getName())); } } });