Jfinal数据备份和数据还原

数据备份

String fileName = System.currentTimeMillis() + ".sql";
File file = new File(SysConfig.dbBackupPath + fileName);

将所有的model类放入一个数组
Class[] class_tenantId = {TenantAdmin.class, TenantRole.class, TenantMessage.class, TenantMailLog.class,TenantSmsLog.class, TenantConfig.class.....}
Class[] classs_userId = {UserInfoHouse.class, UserInfoCompany.class, UserInfoPrivate.class, UserInfoFinance.class.....}

//表中包含租户id字段
for (int i = 0; i < class_tenantId.length; i++) {
    Table table = TableMapping.me().getTable(class_tenantId[i]);
    String tableName = table.getName();
    List<Record> list = Db.find("select * from "+tableName+" where tenant_org_id = "+tenantOrgId);
    String sql = getSql(table, list);
    FileUtils.write(file, sql, true);
}

//表中包含user_info_id字段
table = TableMapping.me().getTable(UserInfo.class);
tableName = table.getName();
list = Db.find("select * from "+tableName+" where tenant_org_id = "+tenantOrgId);
for (int i = 0; i < list.size(); i++) {
    Record record = list.get(i);
    for (int j = 0; j < classs_userId.length; j++) {
        table = TableMapping.me().getTable(classs_userId[j]);
        tableName = table.getName();
        List<Record> listOtherInfo = Db.find("select * from "+tableName+" where user_info_id = "+record.getInt("id"));
        sql = getSql(table, listOtherInfo);
        FileUtils.write(file, sql, true);
    }
}

数据还原

String fileName = dbBackup.getStr("db_name");
File file = new File(SysConfig.dbBackupPath + fileName);
List<String> readLines = FileUtils.readLines(file);
for (int i = 0; i < readLines.size(); i++) {
    String sql = readLines.get(i);
    if (StringUtils.isNotBlank(sql)) {
        Db.update(sql);
    }
}


你可能感兴趣的:(sql,数据备份,jFinal,数据还原)