分享
 
 
 

新手上路:JDBC初级应用实例(二)

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

有时,我们对一种新的数据库根本不知道它的结构或者是其中的内容,好坏么我们如何来获取数据库的情况呢?

真实的例子是这样的,我的朋友的公司接到了一个单子,对方使用的数据库是叫什么\"titanium\"的,说实话由于本人的孤陋寡闻,在此之前从来不知道还有这种数据库,更别说如何访问了,现在朋友要看里面有什么\"东西\",当然是一筹莫展.所以只好找我.

接到电话后,我先问他是什么平台上跑的,如果连结的,他说是在windows下可以建立ODBC数据源,哈哈,就是说可以用java建立Connection了,OK只能建立一下Connection,那么就可以得到这个数据库的所有元信息:

DatabaseMetadata dbmd = conn.getMetadata();然后你可以从这个对象获取以下信息:

getUrl();

//返回与这个数据库的连结的URL,当然是已知的,要不你怎么连上去

getUserName(); //返回与这个数据库的连结的用户,同上

isReadOnly();数据库是否为只读

getDatabaseProduceName();//数据库产品名称

getDatabaseProduceVersion();//版本号

getDriverName();//驱动程序

getDriverVersion();//驱动程序版本

以上内容没有什么意义

ResultSet getTables(String catalog,

String schemaPattern,

String tableNamePattern,

String[] types)

可以得到该库中\"表\"的所有情况,这里的表包括表,视图,系统表,临时空间,别名,同义词对于各参数:

String catalog,表的目录,可能为null,\"null\"匹配所有

String schemaPattern,表的大纲,同上

String tableNamePattern,表名,同上

String[] types,表的类型,\"null\"匹配所有,可用的类型为:

TABLE,VIEW,SYSEM TABLE,GLOBAL TEMPORARY,LOCAL

TEMPORARY,ALIAS,SYNONYM

例如:

DatabaseMetaData dbmd = conn.getMetaData();

ResultSet rs = dbmd.getTables(null,null,null,null);

ResultSetMetaData rsmd = rs.getMetaData();

int j = rsmd.getColumnCount();

for(int i=1;i<=j;i++){

out.print(rsmd.getColumnLabel(i)+\"\\t\");

}

out.println();

while(rs.next()){

for(int i=1;i<=j;i++){

out.print(rs.getString(i)+\"\\t\");

}

out.println();

}

对于更详细的表中的列的信息,可以用dbmd(不是rsmd).getColumns(

String catalog,

String schemaPattern,

String tableNamePattern,

String columnNamePattern

)

不仅可以获得rsmd中的信息,还可以获得列的大小,小数位数,精度,缺省值,列在表中的位置等相关信息.

还有两个方法,调用和获取表信息一样,可以获得存储过程和索引的信息:

ResultSet getProcedures(

String catalog,

String schemaPattern,

String procedurePattern

);

ResultSet getIndexINFO(

String catalog,

String schemaPattern,

String table,

boolean unique,boolean approximate

);

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有