java遍历mysql表_[Java] Java 获取数据库所有表基本信息和表中的所有列基本信息代码...

该博客展示了如何使用Java连接到MySQL数据库,并通过DatabaseMetaData接口获取所有表及其列的基本信息。首先,代码初始化数据库连接,然后遍历获取表名、类型、所属数据库和备注。接着,对每个表进行查询,获取并展示每个字段的名称和类型。
摘要由CSDN通过智能技术生成

importjava.io.IOException;importjava.io.PrintWriter;importjava.sql.Connection;importjava.sql.DatabaseMetaData;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.ResultSetMetaData;importjava.sql.SQLException;importjava.sql.Statement;importjava.util.ArrayList;importjava.util.List;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;public class AnalysisDatabaseStructureServlet extendsHttpServlet {private static final long serialVersionUID = 1L;

Connection conn= null;

Statement st= null;publicAnalysisDatabaseStructureServlet() {super();

}//获取conn

public void init() throwsServletException {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 voiddoGet(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {//1、获取数据库所有表

StringBuffer sbTables = newStringBuffer();

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 = newStringBuffer();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(""-//W3C//DTD HTML 4.01 Transitional//EN\">");

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 voiddoPost(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {this.doGet(request, response);

}//释放conn

public voiddestroy() {super.destroy();if (conn != null) {try{

conn.close();

}catch(SQLException e) {

e.printStackTrace();

}

}

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值