博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Java] Java 获取数据库所有表基本信息和表中的所有列基本信息代码
阅读量:5059 次
发布时间:2019-06-12

本文共 4340 字,大约阅读时间需要 14 分钟。

 

 

废话不多说、上代码

import java.io.IOException;import java.io.PrintWriter;import java.sql.Connection;import java.sql.DatabaseMetaData;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class AnalysisDatabaseStructureServlet extends HttpServlet {    private static final long serialVersionUID = 1L;    Connection conn = null;    Statement st = null;    public AnalysisDatabaseStructureServlet() {        super();    }    //获取conn    public void init() throws ServletException {        try {            Class.forName("com.mysql.jdbc.Driver").newInstance();            conn = java.sql.DriverManager.getConnection("jdbc:mysql://localhost:3306/base", "root", "root");        } catch (InstantiationException e) {            e.printStackTrace();        } catch (IllegalAccessException e) {            e.printStackTrace();        } catch (ClassNotFoundException e) {            e.printStackTrace();        } catch (SQLException e) {            e.printStackTrace();        }    }        public void doGet(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {        // 1、获取数据库所有表        StringBuffer sbTables = new StringBuffer();        List
tables = new ArrayList
(); sbTables.append("-------------- 数据库中有下列的表 ----------
"); try { DatabaseMetaData dbMetaData = conn.getMetaData(); ResultSet rs = dbMetaData.getTables(null, null, null,new String[] { "TABLE" }); while (rs.next()) {
// ///TABLE_TYPE/REMARKS sbTables.append("表名:" + rs.getString("TABLE_NAME") + "
"); sbTables.append("表类型:" + rs.getString("TABLE_TYPE") + "
"); sbTables.append("表所属数据库:" + rs.getString("TABLE_CAT") + "
"); sbTables.append("表所属用户名:" + rs.getString("TABLE_SCHEM")+ "
"); sbTables.append("表备注:" + rs.getString("REMARKS") + "
"); sbTables.append("------------------------------
"); tables.add(rs.getString("TABLE_NAME")); } } catch (SQLException e) { e.printStackTrace(); } // 2、遍历数据库表,获取各表的字段等信息 StringBuffer sbCloumns = new StringBuffer(); for (String tableName : tables) { String sql = "select * from " + tableName; try { PreparedStatement ps = conn.prepareStatement(sql); ResultSet rs = ps.executeQuery(); ResultSetMetaData meta = rs.getMetaData(); int columeCount = meta.getColumnCount(); sbCloumns.append("表 "+ tableName + "共有 "+columeCount+" 个字段。字段信息如下:
"); for (int i = 1; i < columeCount + 1; i++) { sbCloumns.append("字段名:"+meta.getColumnName(i)+"
"); sbCloumns.append("类型:"+meta.getColumnType(i)+"
"); sbCloumns.append("------------------------------
"); } } catch (SQLException e) { e.printStackTrace(); } sbCloumns.append("------------------------------
"); } response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(""); out.println(""); out.println("
A Servlet"); out.println(" "); out.println("" + sbTables.toString()); out.println("" + sbCloumns.toString()); out.println(" "); out.println(""); out.flush(); out.close(); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } //释放conn public void destroy() { super.destroy(); if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } }}

 

转载于:https://www.cnblogs.com/avivaye/p/4938592.html

你可能感兴趣的文章
做最多的,展示最好的
查看>>
会员未登录显示ID=1的会员信息 解决方案
查看>>
Git与Repo入门(转载)
查看>>
夺命雷公狗---linux NO:10 linux的文件与目录的基本操作
查看>>
(shell)show all the folders and sub-folders
查看>>
linux配置ssh某用户只允许证书登陆
查看>>
Count the string
查看>>
黑马程序员---登录进阶练习
查看>>
微信公众号开发
查看>>
安装l Xposed Framework
查看>>
Nova 组件如何协同工作 - 每天5分钟玩转 OpenStack(24)
查看>>
如何在CentOS上使用高版本的GCC编译
查看>>
ScrollView 的使用(非原创)
查看>>
H5实现本地预览图片
查看>>
JavaWeb_(SSH)Struts创建Action的三种方式
查看>>
jQuery extend()和jQuery.fn.extend()区别和详解
查看>>
FZU 2254 英语考试 (最小生成树)
查看>>
[Vue +TS] Use Two-Way Binding in Vue Using @Model Decorator with TypeScript
查看>>
Flask学习-Flask app启动过程
查看>>
servicestack
查看>>