List of usage examples for org.apache.ibatis.session SqlSession commit
void commit();
From source file:com.glaf.core.db.TableDataManager.java
License:Apache License
public void insertTableData(String systemName, String tableName, List<Map<String, Object>> rows) { com.glaf.core.config.Environment.setCurrentSystemName(systemName); TableDefinition tableDefinition = getTableDefinitionService().getTableDefinition(tableName); if (tableDefinition != null) { if (tableDefinition.getTableName() != null) { tableDefinition.setTableName(tableDefinition.getTableName().toUpperCase()); }//from w w w .jav a 2 s . co m List<ColumnDefinition> columns = getTableDefinitionService().getColumnDefinitionsByTableName(tableName); if (columns != null && !columns.isEmpty()) { SqlSession sqlSession = null; Connection conn = null; try { conn = DBConnectionFactory.getConnection(systemName); conn.setAutoCommit(false); sqlSession = getSqlSessionFactory().openSession(ExecutorType.BATCH, conn); Iterator<Map<String, Object>> iterator = rows.iterator(); while (iterator.hasNext()) { TableModel table = new TableModel(); table.setTableName(tableName); Map<String, Object> dataMap = iterator.next(); for (ColumnDefinition column : columns) { String javaType = column.getJavaType(); String name = column.getColumnName(); ColumnModel c = new ColumnModel(); c.setColumnName(name); c.setJavaType(javaType); Object value = dataMap.get(name); if (value == null) { value = dataMap.get(name.toLowerCase()); } if (value == null) { if (column.getName() != null) { value = dataMap.get(column.getName()); if (value == null) { value = dataMap.get(column.getName().toLowerCase()); } } } if (value != null) { if ("Integer".equals(javaType)) { value = ParamUtils.getInt(dataMap, name); } else if ("Long".equals(javaType)) { value = ParamUtils.getLong(dataMap, name); } else if ("Double".equals(javaType)) { value = ParamUtils.getDouble(dataMap, name); } else if ("Date".equals(javaType)) { value = ParamUtils.getTimestamp(dataMap, name); } else if ("String".equals(javaType)) { value = ParamUtils.getString(dataMap, name); } else if ("Clob".equals(javaType)) { value = ParamUtils.getString(dataMap, name); } c.setValue(value); table.addColumn(c); } } sqlSession.insert("insertTableData", table); } sqlSession.commit(); conn.commit(); } catch (Exception ex) { JdbcUtils.rollback(conn); logger.error(ex); ex.printStackTrace(); throw new RuntimeException(ex); } finally { JdbcUtils.close(sqlSession); JdbcUtils.close(conn); } } } }
From source file:com.glaf.core.db.TableDataManager.java
License:Apache License
public void insertTableData(String systemName, TableDefinition tableDefinition, List<Map<String, Object>> rows) { if (tableDefinition.getTableName() != null) { tableDefinition.setTableName(tableDefinition.getTableName().toUpperCase()); }// w w w . j a va 2s . c o m List<ColumnDefinition> columns = tableDefinition.getColumns(); if (columns != null && !columns.isEmpty()) { SqlSession sqlSession = null; Connection conn = null; try { conn = DBConnectionFactory.getConnection(systemName); conn.setAutoCommit(false); sqlSession = getSqlSessionFactory().openSession(ExecutorType.BATCH, conn); Iterator<Map<String, Object>> iterator = rows.iterator(); while (iterator.hasNext()) { TableModel table = new TableModel(); table.setTableName(tableDefinition.getTableName()); Map<String, Object> dataMap = iterator.next(); for (ColumnDefinition column : columns) { String javaType = column.getJavaType(); String name = column.getColumnName(); ColumnModel c = new ColumnModel(); c.setColumnName(name); c.setJavaType(javaType); Object value = dataMap.get(name); if (value == null) { value = dataMap.get(name.toLowerCase()); } if (value == null) { if (column.getName() != null) { value = dataMap.get(column.getName()); if (value == null) { value = dataMap.get(column.getName().toLowerCase()); } } } if (value != null) { if ("Integer".equals(javaType)) { value = ParamUtils.getInt(dataMap, name); } else if ("Long".equals(javaType)) { value = ParamUtils.getLong(dataMap, name); } else if ("Double".equals(javaType)) { value = ParamUtils.getDouble(dataMap, name); } else if ("Date".equals(javaType)) { value = ParamUtils.getTimestamp(dataMap, name); } else if ("String".equals(javaType)) { value = ParamUtils.getString(dataMap, name); } else if ("Clob".equals(javaType)) { value = ParamUtils.getString(dataMap, name); } c.setValue(value); table.addColumn(c); } } sqlSession.insert("insertTableData", table); } sqlSession.commit(); conn.commit(); } catch (Exception ex) { JdbcUtils.rollback(conn); logger.error(ex); ex.printStackTrace(); throw new RuntimeException(ex); } finally { JdbcUtils.close(sqlSession); JdbcUtils.close(conn); } } }
From source file:com.glaf.core.db.TableDataManager.java
License:Apache License
public Collection<TableModel> saveAll(String systemName, TableDefinition tableDefinition, String seqNo, Collection<TableModel> rows) { com.glaf.core.config.Environment.setCurrentSystemName(systemName); logger.debug("tableDefinition=" + tableDefinition); logger.debug("idColumn=" + tableDefinition.getIdColumn().toString()); if (tableDefinition.getTableName() != null) { tableDefinition.setTableName(tableDefinition.getTableName().toUpperCase()); }/*www . j a va2s . c om*/ if (tableDefinition.isInsertOnly()) { return this.insertAll(systemName, tableDefinition, seqNo, rows); } Collection<String> aggregationKeys = new HashSet<String>(); Map<String, Object> colMap = new java.util.HashMap<String, Object>(); Map<String, Object> keyMap = new java.util.HashMap<String, Object>(); Map<String, String> exprMap = new java.util.HashMap<String, String>(); List<ColumnDefinition> exprColumns = new java.util.ArrayList<ColumnDefinition>(); ColumnModel idColumn = new ColumnModel(); ColumnDefinition idCol = tableDefinition.getIdColumn(); if (idCol != null && idCol.getColumnName() != null) { idColumn.setColumnName(idCol.getColumnName()); idColumn.setJavaType(idCol.getJavaType()); idColumn.setValueExpression(idCol.getValueExpression()); } Iterator<ColumnDefinition> iter = tableDefinition.getColumns().iterator(); while (iter.hasNext()) { ColumnDefinition cell = iter.next(); if (StringUtils.isNotEmpty(cell.getValueExpression())) { exprMap.put(cell.getColumnName(), cell.getValueExpression()); exprColumns.add(cell); } } logger.debug(exprMap); String keyCloumns = tableDefinition.getAggregationKeys(); if (StringUtils.isNotEmpty(keyCloumns)) { List<String> cols = StringTools.split(keyCloumns); if (cols != null && !cols.isEmpty()) { StringBuffer buffer = new StringBuffer(1000); Iterator<TableModel> iterator = rows.iterator(); while (iterator.hasNext()) { TableModel tableData = iterator.next(); /** * ?? */ colMap.clear(); buffer.delete(0, buffer.length()); for (ColumnModel cell : tableData.getColumns()) { colMap.put(cell.getColumnName(), cell.getValue()); } Iterator<String> it = cols.iterator(); while (it.hasNext()) { Object val = colMap.get(it.next()); if (val != null) { buffer.append(val.toString()); } else { buffer.append(""); } if (it.hasNext()) { buffer.append("_"); } } String aggregationKey = buffer.toString(); aggregationKeys.add(aggregationKey); tableData.setAggregationKey(aggregationKey);// ?? } if (aggregationKeys.size() > 0 && (aggregationKeys.size() % 200 == 0)) { TableModel model = new TableModel(); model.setTableName(tableDefinition.getTableName()); model.setIdColumn(idColumn); model.setAggregationKeys(aggregationKeys); List<Map<String, Object>> list = getTableDataService().getTableKeyMap(model); if (list != null && !list.isEmpty()) { for (Map<String, Object> dataMap : list) { Object id = ParamUtils.getObject(dataMap, "id"); if (id == null) { id = ParamUtils.getObject(dataMap, "ID"); } String aggregationKey = ParamUtils.getString(dataMap, "aggregationKey"); keyMap.put(aggregationKey, id); } } } } if (aggregationKeys.size() > 0) { TableModel model = new TableModel(); model.setTableName(tableDefinition.getTableName()); model.setIdColumn(idColumn); model.setAggregationKeys(aggregationKeys); List<Map<String, Object>> list = getTableDataService().getTableKeyMap(model); if (list != null && !list.isEmpty()) { for (Map<String, Object> dataMap : list) { Object id = ParamUtils.getObject(dataMap, "id"); if (id == null) { id = ParamUtils.getObject(dataMap, "ID"); } String aggregationKey = ParamUtils.getString(dataMap, "aggregationKey"); keyMap.put(aggregationKey, id); } } } List<TableModel> inertRows = new java.util.ArrayList<TableModel>(); List<TableModel> updateRows = new java.util.ArrayList<TableModel>(); logger.debug(" rows size = " + rows.size()); Iterator<TableModel> iterator = rows.iterator(); while (iterator.hasNext()) { TableModel tableData = iterator.next(); ColumnModel myPK = tableData.getIdColumn(); ColumnModel pkColumn = new ColumnModel(); pkColumn.setColumnName(idColumn.getColumnName()); pkColumn.setJavaType(idColumn.getJavaType()); for (ColumnModel column : tableData.getColumns()) { colMap.put(column.getColumnName(), column.getValue()); } if (keyMap.containsKey(tableData.getAggregationKey())) { Object id = keyMap.get(tableData.getAggregationKey()); pkColumn.setValue(id); tableData.setIdColumn(pkColumn); tableData.removeColumn(pkColumn); updateRows.add(tableData); } else { ColumnModel col = new ColumnModel(); col.setColumnName("AGGREGATIONKEY"); col.setJavaType("String"); col.setValue(tableData.getAggregationKey()); tableData.removeColumn(col); tableData.addColumn(col); for (ColumnDefinition c : exprColumns) { ColumnModel x = new ColumnModel(); x.setColumnName(c.getColumnName()); x.setJavaType(c.getJavaType()); x.setValueExpression(c.getValueExpression()); tableData.addColumn(x); } for (ColumnModel cell : tableData.getColumns()) { String expr = exprMap.get(cell.getColumnName()); if (StringUtils.isNotEmpty(expr)) { if (ExpressionConstants.NOW_EXPRESSION.equals(expr) || ExpressionConstants.CURRENT_YYYYMMDD_EXPRESSION.equals(expr)) { if (cell.getDateValue() == null) { cell.setDateValue(new Date()); cell.setValue(cell.getDateValue()); } } if (ExpressionConstants.ID_EXPRESSION.equals(expr)) { if (cell.getValue() == null) { if (StringUtils.equals(cell.getJavaType(), "Integer")) { cell.setValue(getEntityService().nextId().intValue()); } else if (StringUtils.equals(cell.getJavaType(), "Long")) { cell.setValue(getEntityService().nextId()); } else { cell.setValue(getEntityService().getNextId()); } } } if (ExpressionConstants.SEQNO_EXPRESSION.equals(expr)) { cell.setValue(seqNo); } if (ExpressionConstants.UUID_EXPRESSION.equals(expr)) { cell.setValue(UUID32.getUUID()); } } } if (myPK != null && myPK.getValue() != null) { pkColumn.setValue(myPK.getValue()); } else { if (StringUtils.equals(pkColumn.getJavaType(), "Integer")) { pkColumn.setValue(getEntityService().nextId().intValue()); } else if (StringUtils.equals(pkColumn.getJavaType(), "Long")) { pkColumn.setValue(getEntityService().nextId()); } else { pkColumn.setValue(getEntityService().getNextId()); } } tableData.removeColumn(pkColumn); tableData.addColumn(pkColumn); tableData.setIdColumn(pkColumn); inertRows.add(tableData); } } SqlSession sqlSession = null; Connection conn = null; try { conn = DBConnectionFactory.getConnection(systemName); conn.setAutoCommit(false); sqlSession = getSqlSessionFactory().openSession(ExecutorType.BATCH, conn); if (!inertRows.isEmpty()) { logger.debug("inert rows size:" + inertRows.size()); for (TableModel tableData : inertRows) { tableData.setTableName(tableDefinition.getTableName()); logger.debug(tableData.toString()); sqlSession.insert("insertTableData", tableData); } } if (!updateRows.isEmpty()) { logger.debug("update rows size:" + updateRows.size()); for (TableModel tableData : updateRows) { tableData.setTableName(tableDefinition.getTableName()); sqlSession.insert("updateTableDataByPrimaryKey", tableData); } } sqlSession.commit(); conn.commit(); } catch (Exception ex) { JdbcUtils.rollback(conn); logger.error(ex); ex.printStackTrace(); throw new RuntimeException(ex); } finally { JdbcUtils.close(sqlSession); JdbcUtils.close(conn); } return rows; } else { throw new RuntimeException("aggregationKeys is required."); } }
From source file:com.glaf.core.db.TableDataManager.java
License:Apache License
/** * ?JSON?//from www .j a v a 2 s .c om * * @param tableName * @param rows */ public void saveTableData(String systemName, String tableName, JSONArray rows) { if (rows == null || rows.isEmpty()) { return; } com.glaf.core.config.Environment.setCurrentSystemName(systemName); TableDefinition tableDefinition = getTableDefinitionService().getTableDefinition(tableName); if (tableDefinition != null && tableDefinition.getIdColumn() != null) { if (tableDefinition.getTableName() != null) { tableDefinition.setTableName(tableDefinition.getTableName().toUpperCase()); } SqlSession sqlSession = null; Connection conn = null; try { conn = DBConnectionFactory.getConnection(systemName); conn.setAutoCommit(false); sqlSession = getSqlSessionFactory().openSession(ExecutorType.BATCH, conn); for (int i = 0, len = rows.size(); i < len; i++) { JSONObject jsonObject = rows.getJSONObject(i); this.saveTableData(sqlSession, systemName, tableName, jsonObject); } sqlSession.commit(); conn.commit(); } catch (Exception ex) { JdbcUtils.rollback(conn); logger.error(ex); ex.printStackTrace(); throw new RuntimeException(ex); } finally { JdbcUtils.close(sqlSession); JdbcUtils.close(conn); } } }
From source file:com.glaf.core.db.TableDataManager.java
License:Apache License
public void updateTableData(String systemName, List<TableModel> rows) { if (rows != null && !rows.isEmpty()) { SqlSession sqlSession = null; Connection conn = null;/*w w w .ja v a2 s . c o m*/ try { conn = DBConnectionFactory.getConnection(systemName); conn.setAutoCommit(false); sqlSession = getSqlSessionFactory().openSession(ExecutorType.BATCH, conn); for (TableModel t : rows) { if (t.getTableName() != null) { t.setTableName(t.getTableName().toUpperCase()); } sqlSession.update("updateTableDataByPrimaryKey", t); } sqlSession.commit(); conn.commit(); } catch (Exception ex) { JdbcUtils.rollback(conn); logger.error(ex); ex.printStackTrace(); throw new RuntimeException(ex); } finally { JdbcUtils.close(sqlSession); JdbcUtils.close(conn); } } }
From source file:com.glaf.core.db.TableDataManager.java
License:Apache License
public void updateTableData(String systemName, String tableName, List<Map<String, Object>> rows) { com.glaf.core.config.Environment.setCurrentSystemName(systemName); TableDefinition tableDefinition = getTableDefinitionService().getTableDefinition(tableName); if (tableDefinition != null) { if (tableDefinition.getTableName() != null) { tableDefinition.setTableName(tableDefinition.getTableName().toUpperCase()); }// w ww . j a v a 2 s . c om List<ColumnDefinition> columns = getTableDefinitionService().getColumnDefinitionsByTableName(tableName); if (columns != null && !columns.isEmpty()) { SqlSession sqlSession = null; Connection conn = null; try { conn = DBConnectionFactory.getConnection(systemName); conn.setAutoCommit(false); sqlSession = getSqlSessionFactory().openSession(ExecutorType.BATCH, conn); Iterator<Map<String, Object>> iterator = rows.iterator(); while (iterator.hasNext()) { TableModel table = new TableModel(); table.setTableName(tableName); Map<String, Object> dataMap = iterator.next(); for (ColumnDefinition column : columns) { String javaType = column.getJavaType(); String name = column.getColumnName(); ColumnModel c = new ColumnModel(); c.setColumnName(name); c.setJavaType(javaType); Object value = dataMap.get(name); if (value == null) { value = dataMap.get(name.toLowerCase()); } if (value == null) { if (column.getName() != null) { value = dataMap.get(column.getName()); if (value == null) { value = dataMap.get(column.getName().toLowerCase()); } } } if (value != null) { if ("Integer".equals(javaType)) { value = ParamUtils.getInt(dataMap, name); } else if ("Long".equals(javaType)) { value = ParamUtils.getLong(dataMap, name); } else if ("Double".equals(javaType)) { value = ParamUtils.getDouble(dataMap, name); } else if ("Date".equals(javaType)) { value = ParamUtils.getTimestamp(dataMap, name); } else if ("String".equals(javaType)) { value = ParamUtils.getString(dataMap, name); } else if ("Clob".equals(javaType)) { value = ParamUtils.getString(dataMap, name); } c.setValue(value); if (column.isPrimaryKey()) { table.setIdColumn(c); } else { table.addColumn(c); } } } sqlSession.update("updateTableDataByPrimaryKey", table); } sqlSession.commit(); conn.commit(); } catch (Exception ex) { JdbcUtils.rollback(conn); logger.error(ex); ex.printStackTrace(); throw new RuntimeException(ex); } finally { JdbcUtils.close(sqlSession); JdbcUtils.close(conn); } } } }
From source file:com.glaf.core.db.TableDataManager.java
License:Apache License
public void updateTableData(String systemName, TableDefinition tableDefinition, List<Map<String, Object>> rows) { if (tableDefinition.getTableName() != null) { tableDefinition.setTableName(tableDefinition.getTableName().toUpperCase()); }/* w w w . j a v a2 s.c om*/ List<ColumnDefinition> columns = tableDefinition.getColumns(); if (columns != null && !columns.isEmpty()) { SqlSession sqlSession = null; Connection conn = null; try { conn = DBConnectionFactory.getConnection(systemName); conn.setAutoCommit(false); sqlSession = getSqlSessionFactory().openSession(ExecutorType.BATCH, conn); Iterator<Map<String, Object>> iterator = rows.iterator(); while (iterator.hasNext()) { TableModel table = new TableModel(); table.setTableName(tableDefinition.getTableName()); Map<String, Object> dataMap = iterator.next(); for (ColumnDefinition column : columns) { String javaType = column.getJavaType(); String name = column.getColumnName(); ColumnModel c = new ColumnModel(); c.setColumnName(name); c.setJavaType(javaType); Object value = dataMap.get(name); if (value == null) { value = dataMap.get(name.toLowerCase()); } if (value == null) { if (column.getName() != null) { value = dataMap.get(column.getName()); if (value == null) { value = dataMap.get(column.getName().toLowerCase()); } } } if (value != null) { if ("Integer".equals(javaType)) { value = ParamUtils.getInt(dataMap, name); } else if ("Long".equals(javaType)) { value = ParamUtils.getLong(dataMap, name); } else if ("Double".equals(javaType)) { value = ParamUtils.getDouble(dataMap, name); } else if ("Date".equals(javaType)) { value = ParamUtils.getTimestamp(dataMap, name); } else if ("String".equals(javaType)) { value = ParamUtils.getString(dataMap, name); } else if ("Clob".equals(javaType)) { value = ParamUtils.getString(dataMap, name); } c.setValue(value); if (column.isPrimaryKey()) { table.setIdColumn(c); } else { table.addColumn(c); } } } sqlSession.update("updateTableDataByPrimaryKey", table); } sqlSession.commit(); conn.commit(); } catch (Exception ex) { JdbcUtils.rollback(conn); logger.error(ex); ex.printStackTrace(); throw new RuntimeException(ex); } finally { JdbcUtils.close(sqlSession); JdbcUtils.close(conn); } } }
From source file:com.glaf.core.test.MyBatisBatchTest.java
License:Apache License
@Test public void testInsert() { SqlSessionFactory sqlSessionFactory = super.getBean("sqlSessionFactory"); SqlSession sqlSession = null; try {/* w w w .j a va 2s . com*/ sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false); long id = System.currentTimeMillis(); for (int i = 0; i < 10000; i++) { SysLog log = new SysLog(); log.setId(id + i); log.setAccount("test"); log.setCreateTime(new Date()); log.setIp("192.168.0.12"); log.setOperate("insert"); log.setContent("Test Insert"); sqlSession.insert("insertSysLog", log); if (i == 9999) { // throw new RuntimeException("throw exception"); } } sqlSession.commit(); } catch (Exception ex) { if (sqlSession != null) { sqlSession.rollback(); } ex.printStackTrace(); throw new RuntimeException(ex); } finally { if (sqlSession != null) { sqlSession.close(); } } }
From source file:com.glaf.core.test.MyBatisBatchTest2.java
License:Apache License
@Test public void testInsert() { SqlSessionFactory sqlSessionFactory = super.getBean("sqlSessionFactory"); SqlSession sqlSession = null; try {// ww w. j ava2s .com Environment.setCurrentSystemName("wechat"); HibernateBeanFactory.reload(); sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false); long id = System.currentTimeMillis(); for (int i = 0; i < 1000; i++) { SysLog log = new SysLog(); log.setId(id + i); log.setAccount("test"); log.setCreateTime(new Date()); log.setIp("192.168.0.12"); log.setOperate("insert"); log.setContent("Test Insert"); sqlSession.insert("insertSysLog", log); if (i == 999) { // throw new RuntimeException("throw exception"); } } sqlSession.commit(); } catch (Exception ex) { if (sqlSession != null) { sqlSession.rollback(); } ex.printStackTrace(); throw new RuntimeException(ex); } finally { if (sqlSession != null) { sqlSession.close(); } } }
From source file:com.gordcorp.jira2db.persistence.JiraCustomFieldDao.java
License:Open Source License
public int deleteAllByJiraKey(String jiraKey) throws PersistenceException { SqlSession session = sf.openSession(); int status = 0; try {// w w w .ja v a 2 s . co m String query = NAMESPACE + "." + PREFIX_DELETE_QUERY + this.type.getSimpleName() + "ByJiraKey"; status = session.delete(query, jiraKey); session.commit(); } finally { session.close(); } return status; }