Example usage for org.apache.ibatis.session SqlSession getConnection

List of usage examples for org.apache.ibatis.session SqlSession getConnection

Introduction

In this page you can find the example usage for org.apache.ibatis.session SqlSession getConnection.

Prototype

Connection getConnection();

Source Link

Document

Retrieves inner database connection.

Usage

From source file:org.sonar.server.db.migrations.DatabaseMigrator.java

License:Open Source License

/**
 * @return true if the database has been created, false if this database is not supported or if database has already been created
 *///  w  ww .ja v a2s.c om
@VisibleForTesting
boolean createDatabase() {
    if (DdlUtils.supportsDialect(dbClient.database().getDialect().getId())
            && serverUpgradeStatus.isFreshInstall()) {
        LoggerFactory.getLogger(getClass()).info("Create database");
        SqlSession session = dbClient.openSession(false);
        Connection connection = null;
        try {
            connection = session.getConnection();
            createSchema(connection, dbClient.database().getDialect().getId());
            return true;
        } finally {
            session.close();

            // The connection is probably already closed by session.close()
            // but it's not documented in mybatis javadoc.
            DbUtils.closeQuietly(connection);
        }
    }
    return false;
}

From source file:org.sonar.server.db.migrations.DatabaseMigratorTest.java

License:Open Source License

@Test
public void should_create_schema_on_h2() throws Exception {

    Dialect supportedDialect = new H2();
    when(database.getDialect()).thenReturn(supportedDialect);
    Connection connection = mock(Connection.class);
    SqlSession session = mock(SqlSession.class);
    when(session.getConnection()).thenReturn(connection);
    when(mybatis.openSession()).thenReturn(session);

    DatabaseMigrator databaseMigrator = new DatabaseMigrator(mybatis, database, migrations) {
        @Override//from w  w w. j  a v  a2  s  . c om
        protected void createSchema(Connection connection, String dialectId) {
        }
    };

    assertThat(databaseMigrator.createDatabase()).isTrue();
}

From source file:org.sonar.server.measure.MeasureFilterExecutor.java

License:Open Source License

public List<MeasureFilterRow> execute(MeasureFilter filter, MeasureFilterContext context) throws SQLException {
    if (filter.isEmpty()) {
        return Collections.emptyList();
    }/*from ww  w . java  2 s  .c  o m*/

    List<MeasureFilterRow> rows;
    SqlSession session = null;
    Connection connection = null;
    try {
        session = mybatis.openSession(false);
        prepareContext(context, filter, session);

        if (isValid(filter, context)) {
            MeasureFilterSql sql = new MeasureFilterSql(database, filter, context);
            context.setSql(sql.sql());
            connection = session.getConnection();
            rows = sql.execute(connection);
        } else {
            rows = Collections.emptyList();
        }
    } finally {
        MyBatis.closeQuietly(session);
        // connection is supposed to be closed by the session
        DbUtils.closeQuietly(connection);
    }

    return rows;
}

From source file:org.sonar.server.platform.db.migrations.DatabaseMigrator.java

License:Open Source License

/**
 * @return true if the database has been created, false if this database is not supported or if database has already been created
 *///from   w  ww . j  a va2 s .  co m
@VisibleForTesting
boolean createDatabase() {
    if (DdlUtils.supportsDialect(dbClient.getDatabase().getDialect().getId())
            && serverUpgradeStatus.isFreshInstall()) {
        Loggers.get(getClass()).info("Create database");
        SqlSession session = dbClient.openSession(false);
        Connection connection = null;
        try {
            connection = session.getConnection();
            createSchema(connection, dbClient.getDatabase().getDialect().getId());
            return true;
        } finally {
            session.close();

            // The connection is probably already closed by session.close()
            // but it's not documented in mybatis javadoc.
            DbUtils.closeQuietly(connection);
        }
    }
    return false;
}