网上的方法:

 private Connection connection;
private Statement statement;
public void initConnection(String driverClass, String dbUrl, String username, String password) throws Exception {
Class.forName(driverClass);
this.connection = DriverManager.getConnection(dbUrl, username, password);
this.statement = this.connection.createStatement();
}
public ResultSetMetaData getMetaDataFromTable(String tableName) throws Exception {
String sql = "SELECT * FROM " + tableName.toUpperCase() + " WHERE 1 != 1";
ResultSet rs = this.statement.executeQuery(sql);
return rs.getMetaData();
}
public void displayMetaData(ResultSetMetaData metaData) throws Exception {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < metaData.getColumnCount(); i++) {
sb.append("\n");
sb.append(metaData.getTableName(i + 1));
sb.append(".");
sb.append(metaData.getColumnName(i + 1));
sb.append("|");
sb.append(metaData.getColumnType(i + 1));
sb.append("|");
sb.append(metaData.getColumnTypeName(i + 1));
sb.append("|");
sb.append(metaData.getColumnDisplaySize(i + 1));
sb.append("|");
}
System.out.println(sb.toString());
}

我的方法,有点小问题就是表中无数据时无法得到结构

import java.sql.*;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.List;
public class TestDatabaseTableName{
public static void main(String[] args) throws Exception {
// 驱动
String driver = "com.mysql.jdbc.Driver";
// 数据库连接
String url = "jdbc:mysql://localhost:4828/xfhex_oa";
// 用户名
String user = "root";
// 数据库密码
String password = "123";
// 加载驱动
Class.forName(driver);
// 获取链接
Connection connection = DriverManager
.getConnection(url, user, password);
// 创建查询声明
PreparedStatement preparedStatement = connection
.prepareStatement("from xfhex_user");
// 获取结果
ResultSet resultSet = preparedStatement.executeQuery();
// 获取各个列的信息
ResultSetMetaData metaData = resultSet.getMetaData();
// 一条数据保存在一个Hashtable 将所有Hashtable存放到list
List<Hashtable<String, Object>> rows = new ArrayList<Hashtable<String, Object>>();
while (resultSet.next()) {
Hashtable<String, Object> row = new Hashtable<String, Object>();
for (int i = 1; i <= metaData.getColumnCount(); i++) {
// 打印列名
System.out.println(metaData.getColumnName(i));
row.put(metaData.getColumnName(i), resultSet.getObject(i));
}
rows.add(row);
}
resultSet.close();
preparedStatement.close();
connection.close();
}
}

注意:
ResultSetMetaData 对象可以用于查找 ResultSet 中的列的类型和特性。
方法索引
getCatalogName(int)
获得列的表的目录名。
getColumnCount()
获得 ResultSet 中的列数。
getColumnDisplaySize(int)
获得列的正常的最大字符宽度。
getColumnLabel(int)
获得打印输出和显示的建议列标题。
getColumnName(int)
获得列名。
getColumnType(int)
获得一个列的 SQL 类型。
getColumnTypeName(int)
获得一个列的数据源特定的类型名。
getPrecision(int)
获得一个列的十进制数字的位数。
getScale(int)
获得一个列的十进制小数点右面数字的位数。
getSchemaName(int)
获得一个列的表的模式。
getTableName(int)
获得列的表名。
isAutoIncrement(int)
列是否自动计数,因此它是只读的。
isCaseSensitive(int)
列是否区分大小写。
isCurrency(int)
列是否是通用的。
isDefinitelyWritable(int)
对列的写操作是否一定成功。
isNullable(int)
在该列中是否可以放一个 NULL 值。
isReadOnly(int)
列是否是不可写的。
isSearchable(int)
该列是否是可以查询的。
isSigned(int)
该列是否是有符号数。
isWritable(int)
对该列的写操作是否会成功。

JAVA 获取数据库中表的结构相关推荐

  1. Java获取数据库表的字段信息,及如何将ResultSet转为json

    为什么80%的码农都做不了架构师?>>>    一.Java获取数据库表的各个字段的相关信息 在某些开发情景中,需要获取数据库中表的各个字段的相关信息,如字段名,字段类型,字段大小等 ...

  2. java获取数据库MetaData

    java获取数据库MetaData ​ 元数据(MetaData),即数据的描述信息的数据(表).数据库的表的表名,表的属性名,表的存储位置,表的列数啊等等都是表的描述信息,而这些描述信息就是元数据啦 ...

  3. Java获取数据库表名、字段名、字段类型及注释等信息

    以前有小伙伴在公众号留言问过如何通过java获取数据库的所有表.及表里字段的信息,只是私信回复过. 在最近的项目中架构部提出了一个数据源的配置需求,就是需要配置公司所有系统的数据库.表等信息,便于大数 ...

  4. Java获取数据库表结构

    Java能够操作数据库,当然能够获取到数据库的表结构. 虽然各个DB厂商查询数据库表结构的语句不同,但是Java中通过封装,可以使用共同的API来获取. 各个具体的DB厂商有各自的实现,只需导入相应的 ...

  5. java获取mysql的数据_【助教】Java获取数据库数据展示

    本文将给出一个最简单的Java查询数据库中一张表的数据并将查询结果展示在页面的例子. 实际上,我们要解决以下两个问题: Java与数据库交互(以JDBC为例) 数据展示在前台页面(以Servlet+J ...

  6. java获取数据库的列名,类型等信息

    2019独角兽企业重金招聘Python工程师标准>>> 当你使用和学习JDK的时候,可以查看并学习它所提供给你的两个ResultSetMetaData  和DataBaseMetaD ...

  7. java获取数据库当前时间_java中获取系统的当前时间

    转自:http://www.cnblogs.com/Matrix54/archive/2012/05/01/2478158.html 一. 获取当前系统时间和日期并格式化输出: import java ...

  8. java获取数据库数据保存到本地txt文件中

    首先是Services @Service public class logServiceimpl implements logService {@Autowired@Qualifier("p ...

  9. java获取数据库时间12或13小时

    解决方案 修改程序客户端连接参数,加上**?serverTimezone=Asia/Shanghai**参数,参考: jdbc:mysql://xxxx:xxxx/test?serverTimezon ...

最新文章

  1. 查看cpu使用率_腾讯游戏开发工程师:Linux 机器 CPU 毛刺问题排查
  2. UA MATH571B 试验设计III 单因素试验设计3
  3. python3 cgi传数据
  4. Python中_,__,__xx__方法区别
  5. Python 黑帽子第二章运行截图
  6. TensorFlow基础笔记(13) tf.name_scope tf.variable_scope学习
  7. day68_淘淘商城项目_01
  8. inter无线网卡服务器版驱动,intel无线网卡驱动程序官方版
  9. android l fox x86,【原创】X61T笔触(无手触)安卓(X86)系统真正完美
  10. Java中的字符串及其中的常用方法
  11. “华为杯”研究生数学建模竞赛2020年-【华为杯】B题:降低汽油精制过程中的辛烷值损失模型(附获奖论文)
  12. 证券投资学原理(韩德宗 朱晋)知识点
  13. VBS写成的远控病毒分析
  14. scp量子计算机,室温固态体系中实验实现绝热量子质因数分解
  15. 儿童餐椅CPC认证亚马逊要求ASTM F404测试所需资料流程
  16. ipad wifi信号测试软件,总有适合你 iPad六种无线上网方式汇总
  17. Java基础知识(重点)总结(Java学习方法、系统学习路线)
  18. 【2023/05/13】NP完备
  19. HUN工训中心:开关电路和按键信号抖动
  20. 计算机毕业论文里的编程,计算机编程毕业论文正文

热门文章

  1. 查询数据库重复记录方法
  2. python图片合成视频
  3. 计算机一级讲义,2017计算机一级MSoffice复习讲义
  4. cesium中实现鼠标拖动实体功能
  5. SSH用法及命令详解
  6. C++重载相等运算符operator==的两种方式
  7. 计算两个时间戳之间的自然天数
  8. case class 和 class的区别
  9. 关于我所上传资源的相关问题
  10. 代码编辑软件Sublime Text 4中文版安装使用教程