List of usage examples for org.apache.ibatis.session SqlSession getConnection
Connection getConnection();
From source file:org.mybatis.cdi.ManagerProducers.java
License:Apache License
private SqlSessionFactory createSessionManagerJTA() throws IOException { Reader reader = Resources.getResourceAsReader("org/mybatis/cdi/mybatis-config_jta.xml"); SqlSessionFactory manager = new SqlSessionFactoryBuilder().build(reader); reader.close();//from w w w . j a v a 2 s . co m SqlSession session = manager.openSession(); Connection conn = session.getConnection(); reader = Resources.getResourceAsReader("org/mybatis/cdi/CreateDB_JTA.sql"); ScriptRunner runner = new ScriptRunner(conn); runner.setLogWriter(null); runner.runScript(reader); reader.close(); session.close(); return manager; }
From source file:org.mybatis.guice.session.DbSessionManager.java
License:Apache License
public Connection getConnection() { final SqlSession sqlSession = localSqlSession.get(); if (sqlSession == null) throw new SqlSessionException("Error: Cannot get connection. No managed session is started."); return sqlSession.getConnection(); }
From source file:org.solmix.datax.mybatis.MybatisDataService.java
License:Open Source License
protected DSResponse executeWithDataSource(DataSource dataSource, DSRequest req, OperationType type) throws DSCallException { SqlSession session = null; boolean usedTransaction = false; if (req.getDSCall() != null && this.canJoinTransaction(req)) { usedTransaction = true;//from w ww . j a va2 s . com DSCall dsc = req.getDSCall(); TransactionService ts = dsc.getTransactionService(); Transaction transaction = ts.getResource(dataSource); req.setPartsOfTransaction(true); // dsc?DataSource if (transaction != null) { if (transaction instanceof ConnectionWrapperedTransaction) { Object wrap = ((ConnectionWrapperedTransaction<?>) transaction).getWrappedTransactionObject(); if (wrap instanceof SqlSession) { session = (SqlSession) wrap; } } else if (transaction instanceof ConnectionTransaction) { Connection conn = (Connection) transaction.getTransactionObject(); if (conn != null) { session = sqlSessionFactory.openSession(conn); } else { session = sqlSessionFactory.openSession(); } if (session != null && this.canStartTransaction(req, false)) { ts.bindResource(dataSource, new ConnectionWrapperedTransaction<SqlSession>(session, session.getConnection())); } } // dsc?DataSource } else { if (this.canStartTransaction(req, false)) { session = sqlSessionFactory.openSession(false); if (session != null) { ts.bindResource(dataSource, new ConnectionWrapperedTransaction<SqlSession>(session, session.getConnection())); } } } } else { session = sqlSessionFactory.openSession(true); } try { if (DataTools.isFetch(type)) { return executeFetch(req, session, dataSource); } else if (DataTools.isRemove(type)) { return executeRemove(req, session); } else if (DataTools.isUpdate(type)) { return executeUpdate(req, session); } else if (DataTools.isAdd(type)) { return executeAdd(req, session); } else if (DataTools.isCustom(type)) { return executeCustom(req); } else { return notSupported(req); } } finally { if (!usedTransaction && session != null) { session.close(); } } }
From source file:org.solmix.datax.mybatis.MybatisDataService.java
License:Open Source License
protected List<SqlSessionDepository> makeupSessionInConcurrency(List<RoutingRequest> requests, boolean usedTransaction) { List<SqlSessionDepository> depos = new ArrayList<SqlSessionDepository>(); for (RoutingRequest request : requests) { DataSource dataSource = request.getDataSource(); DSRequest req = request.getRequest(); SqlSession session = null; if (usedTransaction) { DSCall dsc = req.getDSCall(); TransactionService ts = dsc.getTransactionService(); Transaction transaction = ts.getResource(dataSource); req.setPartsOfTransaction(true); // dsc?DataSource if (transaction != null) { if (transaction instanceof ConnectionTransaction) { Connection conn = (Connection) transaction.getTransactionObject(); if (conn == null) { conn = getConnection(dataSource, false); }/*from w ww.ja v a 2 s .co m*/ session = sqlSessionFactory.openSession(conn); if (session != null && this.canStartTransaction(req, false)) { ts.bindResource(dataSource, new ConnectionWrapperedTransaction<SqlSession>(session, session.getConnection())); } } else if (transaction instanceof ConnectionWrapperedTransaction) { Object wrap = ((ConnectionWrapperedTransaction<?>) transaction) .getWrappedTransactionObject(); if (wrap instanceof SqlSession) { session = (SqlSession) wrap; } } // dsc?DataSource } else { if (this.canStartTransaction(req, false)) { Connection conn = getConnection(dataSource, false); session = sqlSessionFactory.openSession(conn); if (session != null) { ts.bindResource(dataSource, new ConnectionWrapperedTransaction<SqlSession>(session, session.getConnection())); } } } //?transaction } else { Connection conn = getConnection(dataSource, true); session = sqlSessionFactory.openSession(conn); } SqlSessionDepository ss = new SqlSessionDepository(); ss.setRequest(request); ss.setUsedTransaction(usedTransaction); ss.setSqlSession(session); depos.add(ss); } return depos; }
From source file:org.sonar.core.measure.MeasureFilterExecutor.java
License:Open Source License
public List<MeasureFilterRow> execute(MeasureFilter filter, MeasureFilterContext context) throws SQLException { if (filter.isEmpty()) { return Collections.emptyList(); }//from w ww . j ava2 s.c om List<MeasureFilterRow> rows; SqlSession session = null; Connection connection = null; try { session = mybatis.openSession(); 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 DatabaseUtils.closeQuietly(connection); } return rows; }
From source file:org.sonar.core.persistence.DatabaseMigrator.java
License:Open Source License
/** * @return true if the database has been created, false if this database is not supported *//*w w w . j a v a2s . co m*/ public boolean createDatabase() { if (!DdlUtils.supportsDialect(database.getDialect().getId())) { return false; } LoggerFactory.getLogger(getClass()).info("Create database"); SqlSession session = null; Connection connection = null; try { session = myBatis.openSession(); connection = session.getConnection(); DdlUtils.createSchema(connection, database.getDialect().getId()); } finally { MyBatis.closeQuietly(session); // The connection is probably already closed by session.close() // but it's not documented in mybatis javadoc. DatabaseUtils.closeQuietly(connection); } return true; }
From source file:org.sonar.core.persistence.MyBatisTest.java
License:Open Source License
@Test public void shouldOpenBatchSession() { MyBatis myBatis = new MyBatis(database, logback, queue); myBatis.start();//from w ww . j av a 2s . com SqlSession session = myBatis.openBatchSession(); try { assertThat(session.getConnection(), notNullValue()); assertThat(session.getMapper(RuleMapper.class), notNullValue()); } finally { session.close(); } }
From source file:org.sonar.db.MyBatisTest.java
License:Open Source License
@Test public void shouldOpenBatchSession() { MyBatis myBatis = new MyBatis(database); myBatis.start();/*from ww w . j a va2 s . c o m*/ SqlSession session = myBatis.openSession(false); try { assertThat(session.getConnection(), notNullValue()); assertThat(session.getMapper(RuleMapper.class), notNullValue()); } finally { session.close(); } }
From source file:org.sonar.server.db.DatabaseMigrator.java
License:Open Source License
/** * @return true if the database has been created, false if this database is not supported *///from ww w. jav a2s .com public boolean createDatabase() { if (!DdlUtils.supportsDialect(database.getDialect().getId())) { return false; } LoggerFactory.getLogger(getClass()).info("Create database"); SqlSession session = null; Connection connection = null; try { session = myBatis.openSession(); connection = session.getConnection(); createSchema(connection, database.getDialect().getId()); return true; } finally { MyBatis.closeQuietly(session); // The connection is probably already closed by session.close() // but it's not documented in mybatis javadoc. DbUtils.closeQuietly(connection); } }
From source file:org.sonar.server.db.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) { @Override/* ww w. j a v a 2 s. c om*/ protected void createSchema(Connection connection, String dialectId) { } }; assertThat(databaseMigrator.createDatabase()).isTrue(); }