您好,欢迎来到哗拓教育。
搜索
您的当前位置:首页对比多个数据源的数据库结构差异

对比多个数据源的数据库结构差异

来源:哗拓教育

工作中经常会出现不同的环境之间数据库的差异,然而这些差异并不容易通过肉眼察觉,我们可以通过程序来帮助我们对比。如下举例MySQL数据库下测试环境和集成环境的差异

主要通过INFORMATION_SCHEMA(DSL)来查询数据库的结构

关键代码

  1. 获取数据库的所有表
  private static List<String> getTables(JdbcTemplate jdbcTemplate){
      String getTablesSql = "SELECT table_name as tableName FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = DATABASE()";
      List<Map<String, Object>> data = jdbcTemplate.queryForList(getTablesSql);
      List<String> tables = new ArrayList<>();
      for (Map<String, Object> map : data){
          tables.add((String) map.get("tableName"));
      }
      return tables;
  }
  1. 根据表名获取字段信息
    private static List<String> getColumns(JdbcTemplate jdbcTemplate, String tableName){
        String getColumnSql = "select column_name columnName from information_schema.columns where table_schema =DATABASE() and table_name = '"+tableName+"'";
        List<Map<String, Object>> data = jdbcTemplate.queryForList(getColumnSql);
        List<String> columns = new ArrayList<>();
        for (Map<String, Object> map : data){
            columns.add((String) map.get("columnName"));
        }
        return columns;
    }
  1. 根据需要传入jdbcTemplate数据源即可完成需要的对比

Copyright © 2019- huatuo2.com 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务