1 package net.sf.jasperreports.mysql; 2 3 import java.sql.Connection ; 4 import java.sql.PreparedStatement ; 5 import java.sql.ResultSet ; 6 import java.sql.SQLException ; 7 import java.sql.Statement ; 8 import java.util.Date ; 9 10 11 15 public class TableStatusTask extends Task 16 { 17 18 24 public TableStatusTask(Database source, Database destination) 25 { 26 super(source, destination); 27 } 28 29 43 public void run() 44 { 45 try 47 { 48 String currentDatabase = parent.url; 49 String currentSource = parent.name; 50 51 Connection userConn = parent.getConnection(); 53 Connection repConn = destination.getConnection(); 54 55 Statement show_databases = userConn.createStatement(); 57 ResultSet dbs = show_databases.executeQuery("SHOW DATABASES;"); 58 59 PreparedStatement update_tableStatus = repConn.prepareStatement("INSERT INTO table_status " 61 + 62 "VALUES (?,?,?,?,?,?,?,?,?,?,?);"); 63 64 while (dbs.next()) 65 { 66 Statement use = userConn.createStatement(); 68 use.executeUpdate("USE " + dbs.getString("Database")); 69 use.close(); 70 71 Statement get_tableStatus = userConn.createStatement(); 73 ResultSet tableStatus = get_tableStatus.executeQuery( 74 "SHOW TABLE STATUS"); 75 76 Date d = new Date (); 78 java.sql.Timestamp SQLdate = new java.sql.Timestamp ( 79 d.getTime()); 80 81 while(tableStatus.next()){ 93 update_tableStatus.setString(1, currentSource); 94 update_tableStatus.setString(2, dbs.getString("Database")); 95 update_tableStatus.setTimestamp(3,SQLdate); 96 update_tableStatus.setString(4, tableStatus.getString("Name")); 97 update_tableStatus.setTimestamp(5, tableStatus.getTimestamp("Create_time")); 98 update_tableStatus.setString(6, tableStatus.getString("Rows")); 99 update_tableStatus.setLong(7, tableStatus.getLong("Avg_row_length")); 100 update_tableStatus.setLong(8, tableStatus.getLong("Data_length")); 101 update_tableStatus.setLong(9, tableStatus.getLong("Index_length")); 102 update_tableStatus.setTimestamp(10, tableStatus.getTimestamp("Update_time")); 103 update_tableStatus.setTimestamp(11, tableStatus.getTimestamp("Check_time")); 104 update_tableStatus.executeUpdate(); 106 } 107 tableStatus.close(); 108 get_tableStatus.close(); 109 } 110 dbs.close(); 111 update_tableStatus.close(); 112 show_databases.close(); 113 } catch (SQLException e) 114 { 115 e.printStackTrace(); 116 System.out.println("Exception: " + e.getMessage()); 117 System.out.println("The Table Status task did not complete."); 118 System.exit(1); 119 } 120 } 122 } 123 | Popular Tags |