
看来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的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)