private static Class<?> hibernateDatabaseDialectClass(DatabasePlatform database) { switch (database) { case DB2: return DB2Dialect.class; case DB2_AS400: return DB2400Dialect.class; case DERBY: return DerbyTenSevenDialect.class; case H2: return H2Dialect.class; case HSQL: return HSQLDialect.class; case INFORMIX: return InformixDialect.class; case MYSQL: return MySQL5Dialect.class; case ORACLE: return Oracle10gDialect.class; case POSTGRESQL: return PostgreSQL82Dialect.class; case SQL_SERVER: return SQLServerDialect.class; case MARIADB: return MySQL5Dialect.class; case HANA: return HANARowStoreDialect.class; case SQLITE: case NONE: default: break; } return null; }
/** * 从DataSoure中取出connection, 根据connection的metadata中的jdbcUrl判断Dialect类型. * 仅支持Oracle, H2, MySql, PostgreSql, SQLServer,如需更多数据库类型,请仿照此类自行编写。 */ public static String getDialect(DataSource dataSource) { String jdbcUrl = getJdbcUrlFromDataSource(dataSource); // 根据jdbc url判断dialect if (StringUtils.contains(jdbcUrl, ":h2:")) { return H2Dialect.class.getName(); } else if (StringUtils.contains(jdbcUrl, ":mysql:")) { return MySQL5InnoDBDialect.class.getName(); } else if (StringUtils.contains(jdbcUrl, ":oracle:")) { return Oracle10gDialect.class.getName(); } else if (StringUtils.contains(jdbcUrl, ":postgresql:")) { return PostgreSQL82Dialect.class.getName(); } else if (StringUtils.contains(jdbcUrl, ":sqlserver:")) { return SQLServer2008Dialect.class.getName(); } else { throw new IllegalArgumentException("Unknown Database of " + jdbcUrl); } }
private Class<? extends Dialect> getHibernateDialect(final PersistenceUnitContext context) { final ConnectionDialect dialect = context.getConnectionDialect(); switch (dialect) { case MSSQLSERVER: return SQLServerDialect.class; case MYSQL: return MySQL5InnoDBDialect.class; case POSTGRESQL: return PostgreSQL9Dialect.class; case ORACLE: return Oracle10gDialect.class; case H2: return H2Dialect.class; default: throw UnknownArgumentException.newInstance(ConnectionDialect.class, dialect); } }
@Test public void testGetDialect() throws SQLException { DataSource mockDataSource = mock(DataSource.class); Connection mockConnection = mock(Connection.class); DatabaseMetaData mockMetaData = mock(DatabaseMetaData.class); when(mockDataSource.getConnection()).thenReturn(mockConnection); when(mockConnection.getMetaData()).thenReturn(mockMetaData); when(mockMetaData.getURL()).thenReturn("jdbc:h2:file:~/test;AUTO_SERVER=TRUE"); String dialect = Hibernates.getDialect(mockDataSource); assertThat(dialect).isEqualTo(H2Dialect.class.getName()); when(mockMetaData.getURL()).thenReturn("jdbc:mysql://localhost:3306/test"); dialect = Hibernates.getDialect(mockDataSource); assertThat(dialect).isEqualTo(MySQL5InnoDBDialect.class.getName()); when(mockMetaData.getURL()).thenReturn("jdbc:oracle:thin:@127.0.0.1:1521:XE"); dialect = Hibernates.getDialect(mockDataSource); assertThat(dialect).isEqualTo(Oracle10gDialect.class.getName()); }
@Test public void testGetDialect() throws SQLException { DataSource mockDataSource = Mockito.mock(DataSource.class); Connection mockConnection = Mockito.mock(Connection.class); DatabaseMetaData mockMetaData = Mockito.mock(DatabaseMetaData.class); Mockito.when(mockDataSource.getConnection()).thenReturn(mockConnection); Mockito.when(mockConnection.getMetaData()).thenReturn(mockMetaData); Mockito.when(mockMetaData.getURL()).thenReturn("jdbc:h2:file:~/test;AUTO_SERVER=TRUE"); String dialect = Hibernates.getDialect(mockDataSource); assertEquals(H2Dialect.class.getName(), dialect); Mockito.when(mockMetaData.getURL()).thenReturn("jdbc:mysql://localhost:3306/test"); dialect = Hibernates.getDialect(mockDataSource); assertEquals(MySQL5InnoDBDialect.class.getName(), dialect); Mockito.when(mockMetaData.getURL()).thenReturn("jdbc:oracle:thin:@127.0.0.1:1521:XE"); dialect = Hibernates.getDialect(mockDataSource); assertEquals(Oracle10gDialect.class.getName(), dialect); }
@Before public void setUp() throws Exception { validator = new IndexColumnsValidator(); validationResults = new Results(); ctx = new DiffContext(new Oracle10gDialect(), validationResults, null, null); }
@Before public void setUp() throws Exception { validator = new NameValidator(); validationResults = new Results(); ctx = new DiffContext(new Oracle10gDialect(), validationResults, null, null); }
/** * Adapt "default.sql" to every supported database */ public static String dialectAdapter(InputStream is, String dialect) { StringBuilder sb = new StringBuilder(); BufferedReader br = null; String line; try { br = new BufferedReader(new InputStreamReader(is)); if (Oracle10gDialect.class.getCanonicalName().equals(dialect)) { log.info("Generation SQL for Oracle10gDialect..."); while ((line = br.readLine()) != null) { sb.append(oracleAdapter(line)).append("\n"); } } else if (SQLServerDialect.class.getCanonicalName().equals(dialect)) { log.info("Generation SQL for SQLServerDialect..."); while ((line = br.readLine()) != null) { sb.append(sqlServerAdapter(line)).append("\n"); } } else { log.info("Generation SQL for GeneralDialect..."); while ((line = br.readLine()) != null) { sb.append(line).append("\n"); } } } catch (IOException e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(br); IOUtils.closeQuietly(is); } return sb.toString().trim(); }
@Test public void initApplicationContext() throws Exception { assertNotNull(repositoryService); assertNotNull(sessionFactory); createSQLSchema("./target/h2-schema.sql", H2Dialect.class.getName()); createSQLSchema("./target/sqlserver-schema.sql", UnicodeSQLServer2008Dialect.class.getName()); createSQLSchema("./target/mysql-schema.sql", MidPointMySQLDialect.class.getName()); createSQLSchema("./target/oracle-schema.sql", Oracle10gDialect.class.getName()); createSQLSchema("./target/postgresql-schema.sql", MidPointPostgreSQLDialect.class.getName()); }
public HibernateDatabaseConfigurationFactory() { builtInConfigurations = new HashMap<String, DatabaseConfiguration>(); builtInConfigurations.put(SQLServerDialect.class.getName(), new MSSQLServerDatabaseConfiguration()); builtInConfigurations.put(Oracle10gDialect.class.getName(), new OracleDatabaseConfiguration()); builtInConfigurations.put(PostgreSQLDialect.class.getName(), new PostgreSQLDatabaseConfiguration()); }
@Before public void setUp() throws Exception { entityManagerFactory = Persistence.createEntityManagerFactory("sequence"); conventions = DDLConventions.create(entityManagerFactory, new Oracle10gDialect() { @Override public String getQuerySequencesString() { return null; } }); }
/** * 从DataSoure中取出connection, 根据connection的metadata中的jdbcUrl判断Dialect类型. * 仅支持Oracle, H2, MySql,如需更多数据库类型,请仿照此类自行编写。 */ public static String getDialect(DataSource dataSource) { String jdbcUrl = getJdbcUrlFromDataSource(dataSource); // 根据jdbc url判断dialect if (StringUtils.contains(jdbcUrl, ":h2:")) { return H2Dialect.class.getName(); } else if (StringUtils.contains(jdbcUrl, ":mysql:")) { return MySQL5InnoDBDialect.class.getName(); } else if (StringUtils.contains(jdbcUrl, ":oracle:")) { return Oracle10gDialect.class.getName(); } else { throw new IllegalArgumentException("Unknown Database of " + jdbcUrl); } }
private void addDialects(StrategySelectorImpl strategySelector) { addDialect( strategySelector, Cache71Dialect.class ); addDialect( strategySelector, CUBRIDDialect.class ); addDialect( strategySelector, DB2Dialect.class ); addDialect( strategySelector, DB2390Dialect.class ); addDialect( strategySelector, DB2400Dialect.class ); addDialect( strategySelector, DerbyTenFiveDialect.class ); addDialect( strategySelector, DerbyTenSixDialect.class ); addDialect( strategySelector, DerbyTenSevenDialect.class ); addDialect( strategySelector, FirebirdDialect.class ); addDialect( strategySelector, FrontBaseDialect.class ); addDialect( strategySelector, H2Dialect.class ); addDialect( strategySelector, HSQLDialect.class ); addDialect( strategySelector, InformixDialect.class ); addDialect( strategySelector, IngresDialect.class ); addDialect( strategySelector, Ingres9Dialect.class ); addDialect( strategySelector, Ingres10Dialect.class ); addDialect( strategySelector, InterbaseDialect.class ); addDialect( strategySelector, JDataStoreDialect.class ); addDialect( strategySelector, MckoiDialect.class ); addDialect( strategySelector, MimerSQLDialect.class ); addDialect( strategySelector, MySQL5Dialect.class ); addDialect( strategySelector, MySQL5InnoDBDialect.class ); addDialect( strategySelector, MySQL5Dialect.class ); addDialect( strategySelector, MySQL5InnoDBDialect.class ); addDialect( strategySelector, Oracle8iDialect.class ); addDialect( strategySelector, Oracle9iDialect.class ); addDialect( strategySelector, Oracle10gDialect.class ); addDialect( strategySelector, PointbaseDialect.class ); addDialect( strategySelector, PostgresPlusDialect.class ); addDialect( strategySelector, PostgreSQL81Dialect.class ); addDialect( strategySelector, PostgreSQL82Dialect.class ); addDialect( strategySelector, PostgreSQL9Dialect.class ); addDialect( strategySelector, ProgressDialect.class ); addDialect( strategySelector, SAPDBDialect.class ); addDialect( strategySelector, SQLServerDialect.class ); addDialect( strategySelector, SQLServer2005Dialect.class ); addDialect( strategySelector, SQLServer2008Dialect.class ); addDialect( strategySelector, Sybase11Dialect.class ); addDialect( strategySelector, SybaseAnywhereDialect.class ); addDialect( strategySelector, SybaseASE15Dialect.class ); addDialect( strategySelector, SybaseASE157Dialect.class ); addDialect( strategySelector, TeradataDialect.class ); addDialect( strategySelector, TimesTenDialect.class ); }
private boolean isOracle(SessionImplementor session) { SessionFactoryImplementor factory = session.getFactory(); //System.out.println("]]] " + Oracle10gDialect.class.isAssignableFrom(factory.getDialect().getClass())); return Oracle10gDialect.class.isAssignableFrom(factory.getDialect().getClass()); }
@Override protected Dialect createHibernateDialect() { return new Oracle10gDialect(); }
protected String getHibernateDialect() { return Oracle10gDialect.class.getName(); }
private boolean isOracle(SharedSessionContractImplementor session) { SessionFactoryImplementor factory = session.getFactory(); //System.out.println("]]] " + Oracle10gDialect.class.isAssignableFrom(factory.getDialect().getClass())); return Oracle10gDialect.class.isAssignableFrom(factory.getDialect().getClass()); }
@Test public void testConfigureNoTableName() { String entityName = "a"; Type type = null; Dialect dialect = new Oracle10gDialect(); Properties params = new Properties(); params.put(IDENTIFIER_NORMALIZER, normalizer); params.put(ENTITY_NAME, entityName); generator.configure(type, params, dialect); assertEquals("seq" + entityName, params.get(SEQUENCE)); }
@Test public void testConfigureTypePropertiesDialect() { String entityName = "a"; String tableName = "b"; Type type = null; Dialect dialect = new Oracle10gDialect(); Properties params = new Properties(); params.put(org.hibernate.id.PersistentIdentifierGenerator.IDENTIFIER_NORMALIZER, normalizer); params.put(TABLE, tableName); params.put(ENTITY_NAME, entityName); generator.configure(type, params, dialect); assertEquals("seq" + tableName, params.get(SEQUENCE)); }