版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_39556804/article/details/79855689
package com.demodashi.dbcompare; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.HashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @Author: ljf * @Date:Create in 9:36 2018/3/9 * @Description: */ public class DbCompare { private static final Logger LOGGER = LoggerFactory.getLogger(NewDbCompare.class); public static void main(String[] args) throws Exception { String content; //new String newUrl = "jdbc:sqlite://C:/Users/Administrator/Desktop/data_new.db"; String newFilePath = "C:/Users/Administrator/Desktop/new.txt"; content = getContent(newUrl); writeFile(content, newFilePath); //old String oldUrl = "jdbc:sqlite://C:/Users/Administrator/Desktop/data_old.db"; String oldFilePt = "C:/Users/Administrator/Desktop/old.txt"; content = getContent(oldUrl); writeFile(content, oldFilePt); } private static String getContent(String url) throws Exception { Class.forName("org.sqlite.JDBC"); Connection connection = null; Statement statement; String menuSql = "select * from system_menus"; String pageSql = "select * from system_pages"; ResultSet resultSet = null; StringBuilder sb = new StringBuilder(); try { connection = DriverManager.getConnection(url); statement = connection.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); statement.setQueryTimeout(30); ArrayList<Integer> menuList = new ArrayList<>(); HashMap<Integer, String> menuMap = new HashMap<>(); resultSet = statement.executeQuery(menuSql); LOGGER.info(resultSet.toString().getBytes().length + "set size"); while (resultSet.next()) { menuList.add(resultSet.getInt("id")); String menu = String.valueOf(resultSet.getInt("id")) + " " + resultSet.getString("address") + " " + resultSet.getString("name") + " " + resultSet.getString("owner") + " " + resultSet.getInt("pid") + " " + resultSet.getInt("privilege") + " " + resultSet.getInt("log") + " " + resultSet.getInt("sort") + " " + resultSet.getInt("type") + " " + resultSet.getString("proxy"); menuMap.put(resultSet.getInt("id"), menu); } resultSet.close(); resultSet = statement.executeQuery(pageSql); ArrayList<String> pageList = new ArrayList<>(); HashMap<String, Object> pageMap = new HashMap<>(); while (resultSet.next()) { pageList.add(resultSet.getString("id")); String page = resultSet.getString("id") + " " + resultSet.getString("name") + " " + resultSet.getInt("parent") + " " + resultSet.getInt("menuid") + " " + resultSet.getString("configs"); pageMap.put(resultSet.getString("id"), page); } for (Integer id : menuList) { sb.append(menuMap.get(id)).append(","); } for (String id : pageList) { sb.append(pageMap.get(id)).append(","); } } catch (SQLException e) { LOGGER.error("查询出错" + e.toString(), e); } finally { if (connection != null) { connection.close(); } if (resultSet != null) { resultSet.close(); } } LOGGER.info(sb.toString().getBytes().length + "sb size"); return sb.toString(); } private static void writeFile(String content, String filePath) { FileWriter fw; BufferedWriter bw = null; try { File file = new File(filePath); fw = new FileWriter(file); bw = new BufferedWriter(fw); if (!file.exists()) { file.createNewFile(); } for (String s : content.toString().split(",")) { bw.write(s); bw.newLine(); } bw.flush(); } catch (IOException e) { e.printStackTrace(); } finally { try { bw.close(); System.out.println("输出完毕 !"); } catch (IOException e) { LOGGER.info(e.toString()); } } } }