Advertisement
Guest User

Untitled

a guest
Jan 29th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.76 KB | None | 0 0
  1. package com.coursedb.dbtask5;
  2.  
  3.  
  4. import java.sql.DatabaseMetaData;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. import java.sql.Statement;
  8.  
  9. public class Main {
  10.  
  11.     public static void main(String[] args) {
  12.         MyConection myConection = new MyConection("jdbc:mysql://localhost:3306/", "chinook", "root", "root");
  13.         MyConection myNewConection = new MyConection("jdbc:mysql://localhost:3306/", "newchinook", "root", "root");
  14.         try {
  15.             Statement statement = myConection.getConnection().createStatement();
  16.             Statement newStatement = myNewConection.getConnection().createStatement();
  17.             DatabaseMetaData metaData = myConection.getConnection().getMetaData();
  18.             ResultSet resultSet = metaData.getTables(myConection.getDatabase(), "", "%", null);
  19.             while (resultSet.next()){
  20.                 String table = resultSet.getString(3);
  21.                 newStatement.execute("create table" + myNewConection.getDatabase() + "." + table + "like" + myConection.getDatabase() + "." + table + ";" );
  22.                 newStatement.execute("insert into" +  myNewConection.getDatabase() + "." +  table + "select * from" + myConection.getDatabase() + "." + table + ";" );
  23.             }
  24.             resultSet.close();
  25.             resultSet = metaData.getTables(myConection.getDatabase(), "", "%", null);
  26.             while (resultSet.next()){
  27.                 String table = resultSet.getString(3);
  28.                 ResultSet keys = metaData.getExportedKeys(myConection.getConnection().getCatalog(),null, table);
  29.                 int n = 0;
  30.                 String foreignKeyTable = "";
  31.                 String foreignKeyColumn = "";
  32.                 String primaryKeyTable = "";
  33.                 String primaryKeyColumn = "";
  34.                 while (keys.next()){
  35.                     int foreignKeySequence = keys.getInt("key_seq");
  36.                     if (foreignKeySequence > n){
  37.                         if (foreignKeyColumn != "") foreignKeyColumn += ",";
  38.                         if (primaryKeyColumn != "") primaryKeyColumn += ",";
  39.                         foreignKeyTable = keys.getString("foreignKeyColumn_name");
  40.                         foreignKeyColumn += keys.getString("foreignKeyColumn_name");
  41.                         primaryKeyColumn += keys.getString("primaryKeyColumn_name");
  42.                         primaryKeyTable = keys.getString("primaryKeyTable_name");
  43.                         n = foreignKeySequence;
  44.                     }
  45.                     else{
  46.                         String execute = "alter table" + foreignKeyTable + "add foreign key (" + foreignKeyColumn + ")references" + primaryKeyTable + "(" + primaryKeyColumn + ");";
  47.                         newStatement.execute(execute);
  48.                         n = 1;
  49.                         foreignKeyColumn = keys.getString("foreignKeyColumn_name");
  50.                         primaryKeyColumn = keys.getString("primaryKeyColumn_name");
  51.                         primaryKeyTable = keys.getString("primaryKeyTable_name");
  52.                         foreignKeyTable = keys.getString("foreignKeyTable_name");
  53.                     }
  54.                 }
  55.                 if(n > 0){
  56.                     String execute = "alter table " + foreignKeyTable + " add foreign key (" + foreignKeyColumn + ") references " + primaryKeyTable + "(" + primaryKeyColumn + ");";
  57.                     newStatement.execute(execute);
  58.                 }
  59.                 keys.close();
  60.             }
  61.             resultSet.close();
  62.         } catch (SQLException e) {
  63.             e.printStackTrace();
  64.         }
  65.         try {
  66.             myConection.getConnection().close();
  67.             myNewConection.getConnection().close();
  68.         } catch (SQLException e) {
  69.             e.printStackTrace();
  70.         }
  71.  
  72.     }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement