@Override public DialectResolutionInfo getDialectResolutionInfo() { try { return new DatabaseMetaDataDialectResolutionInfoAdapter( connection.getMetaData() ); } catch ( SQLException sqlException ) { throw new HibernateException( "Unable to access java.sql.DatabaseMetaData to determine appropriate Dialect to use", sqlException ); } } }
try { DialectResolver dialectResolver = new StandardDialectResolver(); Dialect dialect = dialectResolver.resolveDialect(new DatabaseMetaDataDialectResolutionInfoAdapter(connection.getMetaData()));
@Override public DialectResolutionInfo getDialectResolutionInfo() { try { return new DatabaseMetaDataDialectResolutionInfoAdapter( connection.getMetaData() ); } catch ( SQLException sqlException ) { throw new HibernateException( "Unable to access java.sql.DatabaseMetaData to determine appropriate Dialect to use", sqlException ); } } }
protected Dialect resolveDialectInternal(DatabaseMetaData metaData) throws SQLException { String databaseName = metaData.getDatabaseProductName(); int databaseMajorVersion = metaData.getDatabaseMajorVersion(); logger.info("Database name is: " + databaseName + " databaseMajorVersion is: " + databaseMajorVersion); if ( "MySQL".equals( databaseName ) ) { return new ScoreMySQLDialect(); } DatabaseMetaDataDialectResolutionInfoAdapter databaseMetaDataDialectResolutionInfoAdapter=new DatabaseMetaDataDialectResolutionInfoAdapter(metaData); return resolveDialect(databaseMetaDataDialectResolutionInfoAdapter); } }
protected Dialect resolveDialectInternal(DatabaseMetaData metaData) throws SQLException { String databaseName = metaData.getDatabaseProductName(); int databaseMajorVersion = metaData.getDatabaseMajorVersion(); logger.info("Database name is: " + databaseName + " databaseMajorVersion is: " + databaseMajorVersion); if ( "MySQL".equals( databaseName ) ) { return new ScoreMySQLDialect(); } DatabaseMetaDataDialectResolutionInfoAdapter databaseMetaDataDialectResolutionInfoAdapter=new DatabaseMetaDataDialectResolutionInfoAdapter(metaData); return resolveDialect(databaseMetaDataDialectResolutionInfoAdapter); } }
@Override public Long execute(Connection connection) throws SQLException { Long nextVal = 0L; // Determine what dialect we are using for this DB DialectResolver dialectResolver = new StandardDialectResolver(); Dialect dialect = dialectResolver .resolveDialect(new DatabaseMetaDataDialectResolutionInfoAdapter(connection.getMetaData())); // Find the next value in our sequence (based on DB dialect) try (PreparedStatement preparedStatement = connection .prepareStatement(dialect.getSequenceNextValString(HANDLE_SEQUENCE))) { // Execute query and return results try (ResultSet resultSet = preparedStatement.executeQuery()) { if (resultSet.next()) { // Return result of query (from first column) nextVal = resultSet.getLong(1); } } } return nextVal; } };
@Override public boolean databaseContainsExistingData(Connection connection) { final DatabaseMetaData connectionMetaData; try { connectionMetaData = connection.getMetaData(); } catch (SQLException e) { throw new RuntimeException(e); } final Dialect dialect = new StandardDialectResolver().resolveDialect(new DatabaseMetaDataDialectResolutionInfoAdapter(connectionMetaData)); final Consumer<StandardServiceRegistryBuilder> registryConfig = registryBuilder -> registryBuilder.applySetting("hibernate.dialect", dialect.getClass().getName()); final Collection<Table> tables = withServiceRegistry(registryConfig, registry -> withMetadata(registry, Metadata::collectTableMappings)); final List<String> existingTables = tables.stream() .map(Table::getName) .filter(table -> { try (final Statement statement = connection.createStatement()) { statement.execute("select count(*) from " + table); return true; } catch (SQLException e) { return false; } }).collect(Collectors.toList()); log.debug("Found {} existing Crowd tables in database: {}", existingTables.size(), existingTables); return !existingTables.isEmpty(); }
public String getDialect() { Connection connection = null; try { String dbName = (String) JdbcUtils.extractDatabaseMetaData(dataSource, "getDatabaseProductName"); connection = dataSource.getConnection(); DialectResolutionInfo dialectResolutionInfo = new DatabaseMetaDataDialectResolutionInfoAdapter(connection.getMetaData()); Dialect hibernateDialect = dialectResolver.resolveDialect(dialectResolutionInfo); String hibernateDialectClassName = hibernateDialect.getClass().getName(); if (GriffonNameUtils.isBlank(hibernateDialectClassName)) { throw new DatabaseException( "Could not determine Hibernate dialect for database name [" + dbName + "]!"); } return hibernateDialectClassName; } catch (SQLException e) { throw new DatabaseException(e); } finally { JdbcUtils.closeConnection(connection); } } }
public String getDialect() { Connection connection = null; try { String dbName = (String) JdbcUtils.extractDatabaseMetaData(dataSource, "getDatabaseProductName"); connection = dataSource.getConnection(); DialectResolutionInfo dialectResolutionInfo = new DatabaseMetaDataDialectResolutionInfoAdapter(connection.getMetaData()); Dialect hibernateDialect = dialectResolver.resolveDialect(dialectResolutionInfo); String hibernateDialectClassName = hibernateDialect.getClass().getName(); if (GriffonNameUtils.isBlank(hibernateDialectClassName)) { throw new DatabaseException( "Could not determine Hibernate dialect for database name [" + dbName + "]!"); } return hibernateDialectClassName; } catch (SQLException e) { throw new DatabaseException(e); } finally { JdbcUtils.closeConnection(connection); } } }