import org.springframework.jdbc.support.rowset.SqlRowSet; //导入方法依赖的package包/类
/**
* @param string
*/
private void migrateDataFromGUIPreferences(final UpgradeManager upgradeManager, final UpgradeHistoryData uhd) {
if (!uhd.getBooleanDataValue(TASK_MIGRATE_DATA_FROM_GUI_PROPERTIES_DONE)) {
GUIPreferencesParser parser = new GUIPreferencesParser();
JdbcTemplate template = new JdbcTemplate(upgradeManager.getDataSource());
SqlRowSet srs = template
.queryForRowSet("SELECT textvalue, identity FROM o_property WHERE identity IS NOT NULL AND textvalue IS NOT NULL AND textvalue LIKE '%InfoSubscription::subs%'");
Long identityKey = 0L;
int rowCount = 0;
int counter = 0;
while (srs.next()) {
try {
String prefsXml = srs.getString("textvalue");
identityKey = srs.getLong("identity");
Identity identity = security.loadIdentityByKey(identityKey);
Document doc = parser.createDocument(prefsXml);
List infoSubscriptions = parser.parseDataForInputQuery(doc, parser.queryInfo);
persistInfo(infoSubscriptions, "InfoSubscription::subscribed", identity);
List calendarSubscriptions = parser.parseDataForInputQuery(doc, parser.queryCal);
persistInfo(calendarSubscriptions, "CourseCalendarSubscription::subs", identity);
List infoSubscriptionsNot = parser.parseDataForInputQuery(doc, parser.queryInfoNot);
persistInfo(infoSubscriptionsNot, "InfoSubscription::notdesired", identity);
List calendarSubscriptionsNot = parser.parseDataForInputQuery(doc, parser.queryCalNot);
persistInfo(calendarSubscriptionsNot, "CourseCalendarSubscription::notdesired", identity);
} catch (Exception e) {
log.error("could not migrate gui preferences for identity: " + identityKey, e);
}
counter++;
if (counter % 10 == 0) {
DBFactory.getInstance().intermediateCommit();
}
rowCount++;
}
// Final commit
DBFactory.getInstance().intermediateCommit();
uhd.setBooleanDataValue(TASK_MIGRATE_DATA_FROM_GUI_PROPERTIES_DONE, true);
upgradeManager.setUpgradesHistory(uhd, VERSION);
}
}