@Override public void execute(Connection conn) { JdbcTemplate jt = JuConnUtils.asJdbcTemplate(conn); res.setValue(jt.queryForObject(sql, requiredType)); } });
/** * Creates a DbDataUtil that will use the specified "raw" JDBC connection * to perform data export and import. * @param conn JDBC connection */ public DbDataUtil(Connection conn) { this(JuConnUtils.createByConnection(conn)); }
/** * Returns a JuConnUtil that wraps this JuEmUtil instance. * <p> * JuConnUtil will use the internal "raw" Connection object of the EntityManager * to access the DB. * @return JuConnUtil */ public JuConnUtil asConnUtil() { return JuConnUtils.createByDbWorker(this); }
this.dbTest.connUtil = JuConnUtils.build() .profile(profile) .create();
/** * Creates a JuConnUtil wrapper around a JDBC DataSource. * <p> * Allows to specify whether to reuse the same connection all the time. This can be useful * for performance improvements, e.g. in testing contexts... * @param ds DataSource * @param recycleConnection If true, the same connection will be recycled (and never closed!) * @return JuConnUtil */ public static JuConnUtil createByDataSource(final DataSource ds, boolean recycleConnection) { if (!recycleConnection) { return JuConnUtils.createByDataSource(ds); } else { try { final Connection conn = ds.getConnection(); return new AbstractJuConnUtil() { @Override protected void performDbWork(DbWork work) throws SQLException { work.execute(conn); } }; } catch (Exception ex) { throw new JuRuntimeException("Couldn't get Connection from DataSource", ex); } } }
String adminProfile = profile + "Admin"; logger.info("Admin-Profile defined: {}. Creating Schema '{}' if necessary", adminProfile, schemaName); JuConnUtil adminConnUtil = JuConnUtils.build() .profile(adminProfile) .create();
@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())); } } });