use of io.vertigo.database.sql.connection.SqlConnection in project vertigo by KleeGroup.
the class AbstractSqlDataBaseManagerTest method testConnection.
@Test
public void testConnection() throws Exception {
final SqlConnection connection = obtainMainConnection();
try {
Assert.assertNotNull(connection);
connection.commit();
} finally {
connection.release();
}
}
use of io.vertigo.database.sql.connection.SqlConnection in project vertigo by KleeGroup.
the class AbstractSqlDataBaseManagerTest method testBatchInserts.
@Test
public void testBatchInserts() throws Exception {
final SqlConnectionProvider sqlConnectionProvider = dataBaseManager.getConnectionProvider(SqlDataBaseManager.MAIN_CONNECTION_PROVIDER_NAME);
final String sql = INSERT_INTO_MOVIE_VALUES;
final List<Movie> movies = Movies.bondMovies();
// --prepare data
final List<List<SqlParameter>> batch = new ArrayList<>();
for (final Movie movie : movies) {
final List<SqlParameter> sqlParameters = Arrays.asList(SqlParameter.of(Long.class, movie.getId()), SqlParameter.of(String.class, movie.getTitle()), SqlParameter.of(Double.class, movie.getFps()), SqlParameter.of(BigDecimal.class, movie.getIncome()), SqlParameter.of(Boolean.class, movie.getColor()), SqlParameter.of(Date.class, movie.getReleaseDate()), SqlParameter.of(LocalDate.class, movie.getReleaseLocalDate()), SqlParameter.of(Instant.class, movie.getReleaseInstant()), SqlParameter.of(DataStream.class, movie.getIcon()));
batch.add(sqlParameters);
}
final SqlConnection connection = sqlConnectionProvider.obtainConnection();
final OptionalInt result;
try {
final SqlStatementBuilder sqlStatementBuilder = SqlStatement.builder(sql);
for (final Movie movie : movies) {
sqlStatementBuilder.bind("movie", Movie.class, movie).nextLine();
}
result = dataBaseManager.executeBatch(sqlStatementBuilder.build(), connection);
connection.commit();
} finally {
connection.release();
}
// ---
if (result.isPresent()) {
Assert.assertEquals(movies.size(), result.getAsInt());
}
final List<Integer> countMovie = executeQuery(Integer.class, "select count(*) from movie", 1);
Assert.assertEquals(movies.size(), countMovie.get(0).intValue());
}
use of io.vertigo.database.sql.connection.SqlConnection in project vertigo by KleeGroup.
the class AbstractSqlDataBaseManagerTest method testTwoDataSource.
// On teste un preparestatement mappé sur un type statique (Class famille)
@Test
public void testTwoDataSource() throws Exception {
createDatas();
setupSecondary();
// on crée des données dans 'secondary'
final SqlConnection connection = dataBaseManager.getConnectionProvider("secondary").obtainConnection();
try {
execpreparedStatement(connection, "insert into movie values (1, 'Star wars', null, null, null, null, null, null, null, null)");
execpreparedStatement(connection, "insert into movie values (2, 'Will Hunting', null, null, null, null, null, null, null, null)");
execpreparedStatement(connection, "insert into movie values (3, 'Usual Suspects', null, null, null, null, null, null, null, null)");
// -----
// On passe par une requête bindée
insert(connection, Movies.createMovie(3, Movies.TITLE_MOVIE_3, // mail
null, null, null, null, null, null, null));
connection.commit();
} finally {
connection.release();
}
// ----
final List<Integer> result2 = executeQuery(Integer.class, "select count(*) from movie", dataBaseManager.getConnectionProvider("secondary"), 1);
Assert.assertEquals(1, result2.size());
Assert.assertEquals(4, result2.get(0).intValue());
final List<Movie> resultMovie1 = executeQuery(Movie.class, "select * from movie where id=1", dataBaseManager.getConnectionProvider("secondary"), 1);
Assert.assertEquals(1, resultMovie1.size());
Assert.assertEquals("Star wars", resultMovie1.get(0).getTitle());
final List<Integer> result1 = executeQuery(Integer.class, "select count(*) from movie", dataBaseManager.getConnectionProvider(SqlDataBaseManager.MAIN_CONNECTION_PROVIDER_NAME), 1);
Assert.assertEquals(1, result1.size());
Assert.assertEquals(3, result1.get(0).intValue());
}
use of io.vertigo.database.sql.connection.SqlConnection in project vertigo by KleeGroup.
the class AbstractSqlDataBaseManagerTest method testPrimitiveParam.
@Test
public void testPrimitiveParam() throws Exception {
// On crée les données
createDatas();
// ----
final SqlConnection connection = obtainMainConnection();
final List<Movie> movies;
try {
movies = dataBaseManager.executeQuery(SqlStatement.builder("select * from movie where movie.title = #title# ").bind("title", String.class, Movies.TITLE_MOVIE_1).build(), Movie.class, 1, connection);
} finally {
connection.release();
}
Assert.assertEquals(1, movies.size());
Assert.assertEquals(Movies.TITLE_MOVIE_1, movies.get(0).getTitle());
}
use of io.vertigo.database.sql.connection.SqlConnection in project vertigo by KleeGroup.
the class HibernateConnectionProviderTest method ping.
@Test
public void ping() throws SQLException {
final SqlConnectionProvider sqlConnectionProvider = sqlDataBaseManager.getConnectionProvider(SqlDataBaseManager.MAIN_CONNECTION_PROVIDER_NAME);
final String testQuery = sqlConnectionProvider.getDataBase().getSqlDialect().getTestQuery();
try (VTransactionWritable transaction = transactionManager.createCurrentTransaction()) {
final SqlConnection connection = sqlConnectionProvider.obtainConnection();
try {
sqlDataBaseManager.executeQuery(SqlStatement.builder(testQuery).build(), Integer.class, 1, connection);
} finally {
connection.release();
}
}
}
Aggregations