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

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

Introduction

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

Prototype

@Override
void close();

Source Link

Document

Closes the session.

Usage

From source file:com.mirth.connect.server.controllers.DefaultDatabaseTaskController.java

License:Open Source License

@Override
public String runDatabaseTask(String taskId) throws Exception {
    DatabaseTask databaseTask = getCurrentTask();

    if (databaseTask == null && taskRunLock.tryLock()) {
        try {/*w  w w  .ja  v a  2  s  .c o  m*/
            startTask(populateTask(new DatabaseTask(taskId)));

            if (taskId.equals(TASK_REMOVE_OLD_CHANNEL)) {
                executeUpdate("DROP TABLE OLD_CHANNEL");
                return "Table OLD_CHANNEL successfully dropped.";
            } else if (taskId.equals(TASK_REMOVE_OLD_MESSAGE)) {
                executeUpdate("DROP TABLE OLD_MESSAGE");
                return "Table OLD_MESSAGE successfully dropped.";
            } else if (taskId.equals(TASK_REMOVE_OLD_ATTACHMENT)) {
                executeUpdate("DROP TABLE OLD_ATTACHMENT");
                return "Table OLD_ATTACHMENT successfully dropped.";
            } else if (taskId.equals(TASK_REMOVE_OLD_CODE_TEMPLATE)) {
                executeUpdate("DROP TABLE OLD_CODE_TEMPLATE");
                return "Table OLD_CODE_TEMPLATE successfully dropped.";
            } else if (taskId.equals(TASK_ADD_D_MM_INDEX3)) {
                DonkeyDaoFactory daoFactory = Donkey.getInstance().getDaoFactory();

                if (daoFactory instanceof JdbcDaoFactory) {
                    Map<String, Long> localChannelIds = new HashMap<String, Long>();
                    DonkeyDao dao = daoFactory.getDao();
                    try {
                        localChannelIds = dao.getLocalChannelIds();
                    } finally {
                        if (dao != null) {
                            dao.close();
                        }
                    }

                    Map<String, Long> channelsToIndex = new HashMap<String, Long>();
                    Map<String, String> affectedChannels = new HashMap<String, String>();

                    SqlSession session = SqlConfig.getSqlSessionManager().openSession();

                    try {
                        Connection connection = session.getConnection();

                        for (Entry<String, Long> entry : localChannelIds.entrySet()) {
                            String channelId = entry.getKey();
                            long localChannelId = entry.getValue();
                            String tableName = "D_MM" + localChannelId;
                            String indexName = tableName + "_INDEX3";

                            if (!DatabaseUtil.indexExists(connection, tableName, indexName)) {
                                channelsToIndex.put(channelId, localChannelId);
                                affectedChannels.put(channelId, getChannelName(channelId));
                            }
                        }
                    } finally {
                        session.close();
                    }

                    taskReadWriteLock.writeLock().lock();
                    try {
                        currentTask.setAffectedChannels(new HashMap<String, String>(affectedChannels));
                    } finally {
                        taskReadWriteLock.writeLock().unlock();
                    }

                    class ChannelStoppedException extends Exception {
                    }

                    class AddIndexChannelTaskHandler extends ChannelTaskHandler {

                        private Map<String, String> affectedChannels;

                        public AddIndexChannelTaskHandler(Map<String, String> affectedChannels) {
                            this.affectedChannels = affectedChannels;
                        }

                        @Override
                        public void taskCompleted(String channelId, Integer metaDataId) {
                            affectedChannels.remove(channelId);

                            taskReadWriteLock.writeLock().lock();
                            try {
                                currentTask.setAffectedChannels(new HashMap<String, String>(affectedChannels));
                            } finally {
                                taskReadWriteLock.writeLock().unlock();
                            }
                        }

                        @Override
                        public void taskErrored(String channelId, Integer metaDataId, Exception e) {
                            if (!(e instanceof ChannelStoppedException)) {
                                logger.error("Unable to add index to channel " + channelId + ".", e);
                            }
                        }

                        @Override
                        public void taskCancelled(String channelId, Integer metaDataId,
                                CancellationException e) {
                            logger.error("Unable to add index to channel " + channelId + ".", e);
                        }
                    }

                    AddIndexChannelTaskHandler taskHandler = new AddIndexChannelTaskHandler(affectedChannels);
                    final QuerySource querySource = ((JdbcDaoFactory) daoFactory).getQuerySource();

                    for (Entry<String, Long> entry : channelsToIndex.entrySet()) {
                        if (isCancelled()) {
                            break;
                        }

                        final String channelId = entry.getKey();
                        final long localChannelId = entry.getValue();
                        final String tableName = "D_MM" + localChannelId;
                        final String indexName = tableName + "_INDEX3";

                        ChannelTask addIndexTask = new ChannelTask(channelId) {
                            @Override
                            public Void execute() throws Exception {
                                Channel channel = engineController.getDeployedChannel(channelId);
                                if (channel != null && channel.getCurrentState() != DeployedState.STOPPED) {
                                    throw new ChannelStoppedException();
                                }

                                Map<String, Object> values = new HashMap<String, Object>();
                                values.put("localChannelId", localChannelId);
                                String query = querySource.getQuery("createConnectorMessageTableIndex3",
                                        values);

                                if (query != null) {
                                    logger.debug("Adding index " + indexName + " on table " + tableName + ".");
                                    executeUpdate(query);
                                } else {
                                    throw new Exception(
                                            "Error adding index: Update statement not found for database type: "
                                                    + Donkey.getInstance().getConfiguration()
                                                            .getDonkeyProperties().getProperty("database"));
                                }

                                return null;
                            }
                        };

                        List<ChannelFuture> futures = engineController
                                .submitTasks(Collections.singletonList(addIndexTask), taskHandler);

                        if (futures.size() > 0) {
                            futures.get(0).get();
                        }
                    }

                    int totalCount = channelsToIndex.size();
                    int successCount = totalCount - affectedChannels.size();
                    return "<html>" + successCount + " out of " + channelsToIndex.size()
                            + " indices successfully added.</html>";
                } else {
                    throw new Exception("Unable to perform task: DAO type is not JDBC.");
                }
            } else {
                throw new Exception("Unknown task ID: " + taskId);
            }
        } finally {
            stopTask();
        }
    } else {
        throw new Exception("Another database task is already running: " + databaseTask.getName());
    }
}

From source file:com.mirth.connect.server.controllers.DefaultDatabaseTaskController.java

License:Open Source License

private void executeUpdate(String sql) throws SQLException {
    SqlSession session = SqlConfig.getSqlSessionManager().openSession();
    try {/*from   w w w . j a v  a 2 s . com*/
        session.getConnection().createStatement().executeUpdate(sql);
    } finally {
        session.close();
    }
}

From source file:com.mybatisX.test.MybatisMapperRefreshTest.java

License:Apache License

/**
 *  Mybatis XML /*from www  .  j  a v  a  2 s  . com*/
 */
public static void main(String[] args) throws IOException, InterruptedException {
    InputStream in = UserMapperTest.class.getClassLoader().getResourceAsStream("mysql-config.xml");
    MybatisSessionFactoryBuilder mf = new MybatisSessionFactoryBuilder();
    mf.setSqlInjector(new MySqlInjector());
    Resource[] resource = new ClassPathResource[] { new ClassPathResource("mysql/UserMapper.xml") };
    SqlSessionFactory sessionFactory = mf.build(in);
    new MybatisMapperRefresh(resource, sessionFactory, 0, 5, true);
    boolean isReturn = false;
    SqlSession session = null;
    while (!isReturn) {
        try {
            session = sessionFactory.openSession();
            UserMapper userMapper = session.getMapper(UserMapper.class);
            userMapper.selectListRow(new Pagination(1, 10));
            resource[0].getFile().setLastModified(SystemClock.now());
            session.commit();
            session.close();
            Thread.sleep(5000);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (session != null) {
                session.close();
            }
            Thread.sleep(5000);
        }
    }
    System.exit(0);
}

From source file:com.mybatisX.test.mysql.TransactionalTest.java

License:Apache License

/**
 * <p>//from   w w  w.  j  av a2s. c om
 * 
 * </p>
 */
public static void main(String[] args) {
    /*
     * ?
     */
    InputStream in = TransactionalTest.class.getClassLoader().getResourceAsStream("mysql-config.xml");
    MybatisSessionFactoryBuilder mf = new MybatisSessionFactoryBuilder();
    SqlSessionFactory sessionFactory = mf.build(in);
    SqlSession sqlSession = sessionFactory.openSession();
    /**
     * ?
     */
    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
    int rlt = userMapper.insert(new User(IdWorker.getId(), "1", 1, 1));
    System.err.println("--------- insertInjector --------- " + rlt);

    //session.commit();
    sqlSession.rollback();
    sqlSession.close();
}

From source file:com.ocean.ddl.mybatis.util.SqlSessionUtils.java

License:Apache License

/**
 * Checks if {@code SqlSession} passed as an argument is managed by Spring
 * {@code TransactionSynchronizationManager} If it is not, it closes it,
 * otherwise it just updates the reference counter and lets Spring call the
 * close callback when the managed transaction ends
 * /*from   ww  w  . jav a 2s. com*/
 * @param session
 * @param sessionFactory
 */
public static void closeSqlSession(SqlSession session, SqlSessionFactory sessionFactory) {

    Assert.notNull(session, "No SqlSession specified");
    Assert.notNull(sessionFactory, "No SqlSessionFactory specified");

    SqlSessionHolder holder = (SqlSessionHolder) TransactionSynchronizationManager.getResource(sessionFactory);
    if ((holder != null) && (holder.getSqlSession() == session)) {
        if (logger.isDebugEnabled()) {
            logger.debug("Releasing transactional SqlSession [" + session + "]");
        }
        holder.released();
    } else {
        if (logger.isDebugEnabled()) {
            logger.debug("Closing no transactional SqlSession [" + session + "]");
        }
        session.close();
    }
}

From source file:com.oneops.cms.service.OneopsCmsManager.java

License:Apache License

/**
 * Test it.//from  w  ww  .  j  a v  a2 s. c  o m
 *
 * @param id the id
 * @return the string
 */
public String testIt(int id) {
    SqlSession session = sqlSessionFactory.openSession();
    String clazzName;
    try {
        ClazzMapper mapper = session.getMapper(ClazzMapper.class);
        CmsClazz cl = mapper.getClazz("CI");
        clazzName = cl.getClassName();
    } finally {
        session.close();
    }
    return clazzName;
}

From source file:com.oneops.cms.service.OneopsCmsManager.java

License:Apache License

/**
 * Gets the clazzes.//  ww  w.  ja va2  s.  co m
 *
 * @return the clazzes
 */
public List<CmsClazz> getClazzes() {
    SqlSession session = sqlSessionFactory.openSession();
    List<CmsClazz> clazzes;
    try {
        ClazzMapper mapper = session.getMapper(ClazzMapper.class);
        clazzes = mapper.getClazzes();
        for (CmsClazz clazz : clazzes) {
            clazz.setMdAttributes(mapper.getClazzAttrs(clazz.getClassId()));
            clazz.setFromRelations(mapper.getFromClazzRelations(clazz.getClassId()));
            clazz.setToRelations(mapper.getToClazzRelations(clazz.getClassId()));
        }
    } finally {
        session.close();
    }
    return clazzes;
}

From source file:com.oneops.cms.test.CmsTest.java

License:Apache License

/**
 * @param args//from w ww .jav a 2  s .co m
 * @throws IOException 
 * @throws SQLException 
 */
public static void _main(String[] args) throws IOException, SQLException {
    String resource = "mybatis-config.xml";
    Reader reader = Resources.getResourceAsReader(resource);
    SqlSessionFactory sqlsf = new SqlSessionFactoryBuilder().build(reader);

    SqlSession session = sqlsf.openSession();
    CIMapper ciMapper = session.getMapper(CIMapper.class);
    ClazzMapper clMapper = session.getMapper(ClazzMapper.class);
    NSMapper nsMapper = session.getMapper(NSMapper.class);
    RelationMapper rlMapper = session.getMapper(RelationMapper.class);
    CmsCmProcessor cmProcessor = new CmsCmProcessor();

    cmProcessor.setCiMapper(ciMapper);
    cmProcessor.setCmValidator(cmValidator);
    cmProcessor.setCmsNsProcessor(nsMan);

    cmValidator.setCmsMdProcessor(mdMan);
    cmValidator.setCmsNsProcessor(nsMan);

    nsMan.setNsMapper(nsMapper);

    CmsMdProcessor mdProcessor = new CmsMdProcessor();
    mdProcessor.setClazzMapper(clMapper);
    mdProcessor.setRelationMapper(rlMapper);

    try {
        testQueryAttrs(ciMapper);
        //testState(sqlsf);
        //testClazzes(sqlsf);
        //testCreateOrg();
        //testCreateAssembly();
        //testCreatPlatform(sqlsf);
        //int newRelId = testCreateRelation(sqlsf, 1048, 1052);
        //testGetRelation(sqlsf, newRelId);
        //testGetToFromRelation(sqlsf, 1048);
        //testUpdateCI(sqlsf);
        //testDeleteCi(sqlsf);
        //testGetCiById(sqlsf);
        //testGetCi(sqlsf);
        //testCreateClazz(sqlsf);
        //testGetClazz(sqlsf);
        session.commit();
    } finally {
        session.close();
    }
}

From source file:com.oneops.cms.test.CmsTest.java

License:Apache License

@SuppressWarnings("unused")
private static void testState(SqlSessionFactory sqlsf) {
    SqlSession session = sqlsf.openSession();
    DJMapper djMapper = session.getMapper(DJMapper.class);

    try {//from w w w.  ja  v a  2  s .  c  om
        Integer stateId = djMapper.getReleaseStateId("qqqq");
    } finally {
        session.close();
    }

}

From source file:com.oneops.cms.test.DJTests.java

License:Apache License

/**
 * @param args/*from ww w .j a v  a2  s.com*/
 * @throws IOException 
 * @throws SQLException 
 */
public static void main(String[] args) throws IOException, SQLException {
    String resource = "mybatis-config.xml";
    Reader reader = Resources.getResourceAsReader(resource);
    SqlSessionFactory sqlsf = new SqlSessionFactoryBuilder().build(reader);

    SqlSession session = sqlsf.openSession();
    CIMapper ciMapper = session.getMapper(CIMapper.class);
    ClazzMapper clMapper = session.getMapper(ClazzMapper.class);
    NSMapper nsMapper = session.getMapper(NSMapper.class);
    RelationMapper rlMapper = session.getMapper(RelationMapper.class);
    DJMapper djMapper = session.getMapper(DJMapper.class);
    CmsRfcProcessor rfcProcessor = new CmsRfcProcessor();
    CmsCmProcessor cmProcessor = new CmsCmProcessor();

    //cmMan.setCiMapper(ciMapper);
    //cmMan.setCmValidator(cmValidator);
    //cmMan.setNsManager(nsProc);

    cmProcessor.setCiMapper(ciMapper);
    cmProcessor.setCmValidator(cmValidator);
    cmProcessor.setCmsNsProcessor(nsProc);

    cmValidator.setCmsMdProcessor(mdProc);
    cmValidator.setCmsNsProcessor(nsProc);

    djValidator.setCmsMdProcessor(mdProc);
    djValidator.setCmsNsProcessor(nsProc);

    nsProc.setNsMapper(nsMapper);

    CmsMdProcessor mdProcessor = new CmsMdProcessor();
    mdProcessor.setClazzMapper(clMapper);
    mdProcessor.setRelationMapper(rlMapper);

    rfcProcessor.setDjMapper(djMapper);
    rfcProcessor.setCmsNsProcessor(nsProc);
    rfcProcessor.setDjValidator(djValidator);
    rfcProcessor.setCiMapper(ciMapper);

    djMan.setRfcProcessor(rfcProcessor);

    CmsCmRfcMrgProcessor cmrfcProcessor = new CmsCmRfcMrgProcessor();
    cmrfcProcessor.setCmProcessor(cmProcessor);
    cmrfcProcessor.setRfcProcessor(rfcProcessor);
    cmrfcProcessor.setDjValidator(djValidator);

    cmdjMan.setCmRfcMrgProcessor(cmrfcProcessor);

    try {
        //testCreateRelease();
        //testUpdateRelease();
        //testCreateRrfcCi();
        //testUpdateRrfcCi();
        //testRmRrfcCi();
        //testGetRfcCi();
        //testCreateRrfcRelation();
        //testUpdateRrfcRelation();
        testGetRfcCI();
        session.commit();
    } finally {
        session.close();
    }
}