List of usage examples for org.apache.ibatis.session SqlSession close
@Override
void close();
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(); } }