• java读取mysql表的注释及字段注释


    /**
     * 读取mysql某数据库下表的注释信息
     * 
     * @author xxx
     */
    public class MySQLTableComment {
        public static Connection getMySQLConnection() throws Exception {
            Class.forName("com.mysql.jdbc.Driver");
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/databaseName", "root", "root");
            return conn;
        }
        
    
        /**
         * 获取当前数据库下的所有表名称
         * @return
         * @throws Exception
         */
        public static List getAllTableName() throws Exception {
            List tables = new ArrayList();
            Connection conn = getMySQLConnection();
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("SHOW TABLES ");
            while (rs.next()) {
                String tableName = rs.getString(1);
                tables.add(tableName);
            }
            rs.close();
            stmt.close();
            conn.close();
            return tables;
        }
        
    
        /**
         * 获得某表的建表语句
         * @param tableName
         * @return
         * @throws Exception
         */
        public static Map getCommentByTableName(List tableName) throws Exception {
            Map map = new HashMap();
            Connection conn = getMySQLConnection();
            Statement stmt = conn.createStatement();
            for (int i = 0; i < tableName.size(); i++) {
                String table = (String) tableName.get(i);
                ResultSet rs = stmt.executeQuery("SHOW CREATE TABLE " + table);
                if (rs != null && rs.next()) {
                    String createDDL = rs.getString(2);
                    String comment = parse(createDDL);
                    map.put(table, comment);
                }
                rs.close();
            }
            stmt.close();
            conn.close();
            return map;
        }
        /**
         * 获得某表中所有字段的注释
         * @param tableName
         * @return
         * @throws Exception
         */
        public static void getColumnCommentByTableName(List tableName) throws Exception {
            Map map = new HashMap();
            Connection conn = getMySQLConnection();
            Statement stmt = conn.createStatement();
            for (int i = 0; i < tableName.size(); i++) {
                String table = (String) tableName.get(i);
                ResultSet rs = stmt.executeQuery("show full columns from " + table);
                System.out.println("【"+table+"】");
    //            if (rs != null && rs.next()) {
                    //map.put(rs.getString("Field"), rs.getString("Comment"));
                while (rs.next()) {   
    //                System.out.println("字段名称:" + rs.getString("Field") + "	"+ "字段注释:" + rs.getString("Comment") );
                    System.out.println(rs.getString("Field") + "	:	"+  rs.getString("Comment") );
                } 
    //            }
                rs.close();
            }
            stmt.close();
            conn.close();
    //        return map;
        }
    
        
    
        /**
         * 返回注释信息
         * @param all
         * @return
         */
        
        public static String parse(String all) {
            String comment = null;
            int index = all.indexOf("COMMENT='");
            if (index < 0) {
                return "";
            }
            comment = all.substring(index + 9);
            comment = comment.substring(0, comment.length() - 1);
            return comment;
        }
    
        public static void main(String[] args) throws Exception {
            List tables = getAllTableName();
            Map tablesComment = getCommentByTableName(tables);
            Set names = tablesComment.keySet();
            Iterator iter = names.iterator();
            while (iter.hasNext()) {
                String name = (String) iter.next();
                System.out.println("Table Name: " + name + ", Comment: " + tablesComment.get(name));
            }
            
            getColumnCommentByTableName(tables);
        }
  • 相关阅读:
    近期前端中的 一些常见的面试题
    一道前端学习题
    前端程序员容易忽视的一些基础知识
    web前端工程师入门须知
    Web前端知识体系精简
    面试分享:一年经验初探阿里巴巴前端社招
    抽象类、抽象函数/抽象方法详解
    C#语法-虚方法详解 Virtual 虚函数
    面向对象语言:继承关系教程
    C#动态创建Xml-LinQ方式
  • 原文地址:https://www.cnblogs.com/ydymz/p/8329630.html
Copyright © 2020-2023  润新知