Skip to content

Instantly share code, notes, and snippets.

@allvee
Last active October 18, 2016 11:11
Show Gist options
  • Select an option

  • Save allvee/bb436709f363d27c9839 to your computer and use it in GitHub Desktop.

Select an option

Save allvee/bb436709f363d27c9839 to your computer and use it in GitHub Desktop.
Alamin.doc
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.*;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import java.util.Stack;
public class MySQLServerFetch {
// JDBC driver name and database URL
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
// To Store Data
static final String DB_LOCALHOST = "jdbc:mysql://localhost/";
// From Fetch Data
static final String DB_FETCH_SERVER = "jdbc:mysql://localhost/";
static final String fileToWrite = "localhost.txt";
// Database credentials From
static final String USER_FETCH = "root";
static final String PASS_FETCH = "nopass";
// Database Credential To
static final String USER_LOCAL = "root";
static final String PASS_LOCAL = "nopass";
static Stack<String> db_table_stack = new Stack<>();
static Stack<String> msisdn = new Stack<>();
public static void main(String[] args) throws SQLException, IOException {
Connection conn_local = null;
Connection conn_fetch = null;
Statement stmt = null;
try {
// STEP 2: Register JDBC driver
Class.forName("com.mysql.jdbc.Driver");
// STEP 3: Open a connection
System.out.println("Connecting to database...");
conn_local = DriverManager.getConnection(DB_LOCALHOST, USER_LOCAL, PASS_LOCAL);
conn_fetch = DriverManager.getConnection(DB_FETCH_SERVER, USER_FETCH, PASS_FETCH);
// STEP 4: Execute a query
System.out.println("Creating statement...");
stmt = conn_fetch.createStatement();
String sql;
sql = "SELECT \n" +
" table_schema AS db_name, \n" +
" table_name AS tbl_name, \n" +
" ROUND(((data_length + index_length) / 1024 / 1024), 2) tbl_size_mb \n" +
"FROM information_schema.TABLES \n" +
"ORDER BY tbl_size_mb DESC;";
ResultSet rs = stmt.executeQuery(sql);
// STEP 5: Extract data from result set
while (rs.next()) {
// Retrieve by column name
String db_name = rs.getString("db_name");
String tbl_name = rs.getString("tbl_name");
String tbl_size_mb = rs.getString("tbl_size_mb");
// Push DB.TABLE Name to Stack
if (tbl_size_mb != null) {
if (Double.parseDouble(tbl_size_mb) >= 0.01)
db_table_stack.push(db_name + "." + tbl_name);
}
}
// STEP 6: Clean-up environment
// rs.close();
// stmt.close();
// conn.close();
} catch (SQLException se) {
// Handle errors for JDBC
se.printStackTrace();
} catch (Exception e) {
// Handle errors for Class.forName
e.printStackTrace();
} finally {
// finally block used to close resources
// try{
// if(stmt!=null)
// stmt.close();
// }catch(SQLException se2){
// }// nothing we can do
// try{
// if(conn!=null)
// conn.close();
// }catch(SQLException se){
// se.printStackTrace();
// }//end finally try
}//end try
// Total count of DB.TABLE
System.out.println(db_table_stack.size());
String db_table;
while (!db_table_stack.empty()) {
db_table = db_table_stack.pop();
String query = "select msisdn from " + db_table;
try {
ResultSet rs = stmt.executeQuery(query);
ResultSetMetaData metaData = rs.getMetaData();
// Checking whether a query is executed successfully
// and found metadata
if (metaData.getColumnCount() > 0) {
// Push All MSISDN to Stack
while (rs.next()) {
msisdn.push(rs.getString("msisdn"));
}
}
} catch (SQLException e) {
//e.printStackTrace();
}
}
// All MSISDN Including Duplicates
System.out.println(msisdn.size());
// Unique MSISDN
Set<String> hashSet = new HashSet<>(msisdn);
System.out.println(hashSet.size());
BufferedWriter out = new BufferedWriter(new FileWriter(fileToWrite));
Iterator it = hashSet.iterator();
while (it.hasNext()) {
out.write(it.next() + "\n");
}
out.close();
System.out.println("Goodbye!");
}//end main
}//end MySQLServerFetch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment