java获取数据库的所有列名和对应的数据库类型

时间:2023-03-09 07:09:07
java获取数据库的所有列名和对应的数据库类型

/**
     * 连接数据库
     * @param driver 数据库的驱动类
     * @param url 数据库的地址
     * @param userName 数据库的用户名
     * @param passWord 数据库的用户密码
     * @return Connection
     */
    public static Connection openSQLDB(String driver,String url,String userName,String passWord){
        Connection conn=null;
        try {
        Class.forName(driver);
         conn=DriverManager.getConnection(url,userName,passWord);
        } catch (Exception e) {
            e.printStackTrace();
        
        }
        return conn;
    }

/**
     * 获取数据库的所有列名和对应的数据库类型
     * @param conn 连接数据库的对象  Connection conn= Jdb.openSQLDB(driver, url, user, password);
     * @param sql 查询的表
     * @return Map
     *
     */
    public static Map getColumnName(Connection conn,String sql){
        Map map=new HashMap();
        try {
            PreparedStatement ps=conn.prepareStatement(sql);
            ResultSet rs=ps.executeQuery();
            ResultSetMetaData rsm=rs.getMetaData();
            while(rs.next()){
                for (int i = 1; i <= rsm.getColumnCount() ; i++) {
                    map.put(rsm.getColumnName(i),rsm.getColumnClassName(i));
                    
                }
            }
            
        } catch (Exception e) {
            e.printStackTrace();
        }
        return map;
    }