package com.dianping.puma.portal.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.sql.*; import java.util.ArrayList; import java.util.List; public class MysqlMetaInfoFetcher { @SuppressWarnings("unused") private static final Logger LOG = LoggerFactory.getLogger(MysqlMetaInfoFetcher.class); private Connection conn; private PreparedStatement stmt; public MysqlMetaInfoFetcher(String host, String username, String password) throws SQLException { conn = DriverManager.getConnection("jdbc:mysql://" + host + "/", username, password); stmt = conn.prepareStatement("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = ?"); } public static void main(String[] args) throws SQLException { Connection conn = DriverManager .getConnection( "jdbc:mysql://localhost:3306/?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&noAccessToProcedureBodies=true", "root", "root"); PreparedStatement stmt = conn .prepareStatement("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = ?"); stmt.setString(1, "pumatest"); ResultSet rs = stmt.executeQuery(); if (rs != null) { while (rs.next()) { String tb = rs.getString("TABLE_NAME"); System.out.println(tb); } } } /** * 获取databaseConfigFrom数据库下的所有表名 * * @throws SQLException */ public List<String> getTables(String databaseName) throws SQLException { List<String> tableNames = new ArrayList<String>(); synchronized (stmt) { stmt.setString(1, databaseName); ResultSet rs = stmt.executeQuery(); if (rs != null) { while (rs.next()) { String tb = rs.getString("TABLE_NAME"); tableNames.add(tb); } } } return tableNames; } public void close() { if (stmt != null) { try { stmt.close(); stmt = null; } catch (SQLException e) { // ignore } } if (conn != null) { try { conn.close(); conn = null; } catch (SQLException e) { // ignore } } } }