java如何获取数据库中所有表名

java如何获取数据库中所有表名,第1张

看来lz并没有认真看api文档啊,在接口connection中有一个getmetadata()函数,其返回值是接口databasemetadata,里面有各种数据库的配置信息,如是否支持空、最大连接数、用户可以调用的所有存储过程等,其中包括getschemas()-获取所有模式,gettables(),获取所有的表,根据输入的不同参数可以获取所有表或者其中某个模式的表,还包括表的注射等信息,getcolumns()则是获取表的具体字段,这些函数大多是以resultset的形式返回,和一般的jdbc使用差不多,lz慢慢研究研究吧

最好给count()起一个别名 count1。

ClassforName("驱动地址");

Connection con=DriverManagergetConnection("数据库地址","用户名","密码");

Statement stm=concreateStatement();

ResultSet rs=stmexecute("查询语句");

while(rsnext()){

String str=rsgetString("count1");

systemoutprintln(str);

}

select count(1) as num from table

这里把结果集的列名定一下

然后getInt("num")

还没有就用count()或者表的字段

以MySQL5为例,看看实现过程:

首先为了描述表和列的关系,必须做个简单建模:

表对象、列对象,之间是一对多关系。

public class TableInfoBean {

private String tableName;

private String tableComment;

private List<ColumnBean> columnList=new ArrayList<ColumnBean>();

public class ColumnBean {

private String columnName;

private String columnComment;

private String SqlType;

这个关系很简单,就这么搞定了,用来保存一个表信息。

下面就是如何从数据库读取表信息了。

在这里依赖一个类DatabaseMetaData,这个对象可以从数据库连接来获取。有了它万事大吉了,想知道什么问它即可:

DatabaseMetaData databaseMetaData = conngetMetaData();

//获取所有表

ResultSet tableSet = databaseMetaDatagetTables(null, "%", "%", new String[]{"TABLE"});

//获取tableName表列信息

ResultSet columnSet = databaseMetaDatagetColumns(null, "%", tableName, "%");

上面代码会得到两个结果集,对照DatabaseMetaData 的文档,我们可以通过结果集的列名来获取想要的信息,例如

String tableName = tableSetgetString("TABLE_NAME");

String tableComment = tableSetgetString("REMARKS");

String columnName = columnSetgetString("COLUMN_NAME");

String columnComment = columnSetgetString("REMARKS");

String sqlType = columnSetgetString("DATA_TYPE");

含义很清楚我就不做解释了。

逐个遍历表,然后得到一个TableInfoBean的集合,这个集合就是数据库中所有表的信息了

以上就是关于java如何获取数据库中所有表名全部的内容,包括:java如何获取数据库中所有表名、用select count()获取总数,然后在java中怎么能得到这个总数、JDBC返回select count的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9506662.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存