use of org.seasar.doma.jdbc.dialect.PostgresDialect in project doma-spring-boot by domaframework.
the class DomaAutoConfiguration method dialect.
@Bean
@ConditionalOnMissingBean
public Dialect dialect(Environment environment) {
DialectType dialectType = domaProperties.getDialect();
if (dialectType != null) {
return dialectType.create();
}
String url = environment.getProperty("spring.datasource.url");
if (url != null) {
DatabaseDriver databaseDriver = DatabaseDriver.fromJdbcUrl(url);
switch(databaseDriver) {
case DB2:
return new Db2Dialect();
case H2:
return new H2Dialect();
case HSQLDB:
return new HsqldbDialect();
case SQLSERVER:
case JTDS:
return new MssqlDialect();
case MYSQL:
return new MysqlDialect();
case ORACLE:
return new OracleDialect();
case POSTGRESQL:
return new PostgresDialect();
case SQLITE:
return new SqliteDialect();
default:
break;
}
}
if (logger.isWarnEnabled()) {
logger.warn("StandardDialect was selected because no explicit configuration and it is not possible to guess from 'spring.datasource.url property'");
}
return new StandardDialect();
}
use of org.seasar.doma.jdbc.dialect.PostgresDialect in project doma by domaframework.
the class BuiltinIdentityIdGeneratorTest method test_identityReservationSql.
@Test
public void test_identityReservationSql() {
MockConfig config = new MockConfig();
config.setDialect(new PostgresDialect());
MockResultSet resultSet = config.dataSource.connection.preparedStatement.resultSet;
resultSet.rows.add(new RowData(11L));
resultSet.rows.add(new RowData(12L));
resultSet.rows.add(new RowData(13L));
EntityType<IdGeneratedEmp> entityType = _IdGeneratedEmp.getSingletonInternal();
BuiltinIdentityIdGenerator identityIdGenerator = new BuiltinIdentityIdGenerator();
IdGenerationConfig idGenerationConfig = new IdGenerationConfig(config, entityType, new ReservedIdProvider(config, entityType, 3));
Long value = identityIdGenerator.generatePreInsert(idGenerationConfig);
assertEquals(new Long(11), value);
assertEquals("select nextval(pg_catalog.pg_get_serial_sequence('\"CATA\".\"EMP\"', 'id')) from generate_series(1, 3)", config.dataSource.connection.preparedStatement.sql);
value = identityIdGenerator.generatePreInsert(idGenerationConfig);
assertEquals(new Long(12), value);
value = identityIdGenerator.generatePreInsert(idGenerationConfig);
assertEquals(new Long(13), value);
try {
identityIdGenerator.generatePreInsert(idGenerationConfig);
fail();
} catch (IllegalStateException e) {
System.out.println(e.getMessage());
}
}
use of org.seasar.doma.jdbc.dialect.PostgresDialect in project doma by domaframework.
the class BuiltinTableIdGeneratorTest method test.
@Test
public void test() {
MockConfig config = new MockConfig();
config.setDialect(new PostgresDialect());
MockConnection connection = new MockConnection();
MockConnection connection2 = new MockConnection();
MockResultSet resultSet2 = connection2.preparedStatement.resultSet;
resultSet2.rows.add(new RowData(11L));
final LinkedList<MockConnection> connections = new LinkedList<>();
connections.add(connection);
connections.add(connection2);
config.dataSource = new MockDataSource() {
@Override
public Connection getConnection() {
return connections.pop();
}
};
BuiltinTableIdGenerator idGenerator = new BuiltinTableIdGenerator();
idGenerator.setQualifiedTableName("aaa");
idGenerator.setPkColumnName("PK");
idGenerator.setPkColumnValue("EMP_ID");
idGenerator.setValueColumnName("VALUE");
idGenerator.setInitialValue(1);
idGenerator.setAllocationSize(1);
idGenerator.initialize();
IdGenerationConfig idGenerationConfig = new IdGenerationConfig(config, _IdGeneratedEmp.getSingletonInternal());
Long value = idGenerator.generatePreInsert(idGenerationConfig);
assertEquals(new Long(10), value);
assertEquals("update aaa set VALUE = VALUE + ? where PK = ?", connection.preparedStatement.sql);
assertEquals(2, connection.preparedStatement.bindValues.size());
assertEquals("select VALUE from aaa where PK = ?", connection2.preparedStatement.sql);
assertEquals(1, connection2.preparedStatement.bindValues.size());
}
use of org.seasar.doma.jdbc.dialect.PostgresDialect in project doma by domaframework.
the class GreedyCacheSqlFileRepositoryTest method testGetSqlFile_postgres.
@Test
public void testGetSqlFile_postgres() {
PostgresDialect dialect = new PostgresDialect();
String path = "META-INF/" + getClass().getName().replace(".", "/") + ".sql";
GreedyCacheSqlFileRepository repository = new GreedyCacheSqlFileRepository();
SqlFile sqlFile = repository.getSqlFile(method, path, dialect);
assertEquals(path, sqlFile.getPath());
}
use of org.seasar.doma.jdbc.dialect.PostgresDialect in project doma by domaframework.
the class BuiltinIdentityIdGeneratorTest method test_identitySelectSql.
@Test
public void test_identitySelectSql() {
MockConfig config = new MockConfig();
config.setDialect(new PostgresDialect());
MockResultSet resultSet = config.dataSource.connection.preparedStatement.resultSet;
resultSet.rows.add(new RowData(11L));
BuiltinIdentityIdGenerator identityIdGenerator = new BuiltinIdentityIdGenerator();
IdGenerationConfig idGenerationConfig = new IdGenerationConfig(config, _IdGeneratedEmp.getSingletonInternal());
Long value = identityIdGenerator.generatePostInsert(idGenerationConfig, config.dataSource.connection.preparedStatement);
assertEquals(new Long(11), value);
assertEquals("select currval(pg_catalog.pg_get_serial_sequence('\"CATA\".\"EMP\"', 'id'))", config.dataSource.connection.preparedStatement.sql);
}
Aggregations