Java获取数据库表列信息、索引信息、存储过程等信息

更新时间:2023-06-29 19:30:35 阅读: 评论:0

Java获取数据库表列信息、索引信息、存储过程等信息
转载地址:
Java获得数据库基本信息,包括表的信息、表中列的信息、索引信息、存储过程信息等。先创建与数据库的连接,通过Connection 对象的getMetaData()⽅法可以创建DatabaMetaData对象,从该对象中获取数据库的基本信息。通过使⽤DatabaMetaData 对象的getDatabaProductName()⽅法可以获取连接的数据库DBMS 名称,使⽤getUrName()⽅法可以获取建⽴连接使⽤的⽤户名。获取表的信息可以使⽤该对象的getTables()⽅法,如:
其中catalog 为⽬录名,null 表⽰忽略⽬录;schemapattern 为⼤纲的匹配模式,null 表⽰忽略;tablenamepattern 表⽰表名称的匹配模式;type 为需要检索的表类型列表。使⽤getTables()获得⼀个结果集,此结果集中每⼀⾏都有⼀个表的信息,可以通过getInt()、getString()等⽅法来获得每⼀⾏中各列的信息,主要有TABLE_NAME、TABLE_TYPE 等,关于这些信息的描述在程序中作了注释,也可以参考JDBC 的API ⼿册。通过使⽤DatabaMetaData 对象的getColumns()⽅法来获得数据库表的列的信息,如:
其中columnsnamepattern 表⽰列名匹配模式。通过getColumns()⽅法获得的结果集每⼀⾏都是⼀个列的描述,主要有TABLE_NAME、COLUMN_NAME 、TYPE_NAME 等。获取索引信息是使⽤了DatabaMetaData 对象的getIndexInfo()⽅法,⽅法使⽤如下:
其中,unique 为boolean 型,当为真值时,返回具有唯⼀值的索引,⽽为假时,不论索引值是否唯⼀都返回;approximate 为true 时,返回近似值,为fal 时,返回精确值。通过getIndexInfo()⽅法获得的结果集中每⼀⾏都是⼀个索引的描述,主要有TABLE_NAME、INDEX_NAME、TYPE 等。使⽤DatabaMetaData 对象的getProcedures()⽅法获取存储过程的信息,使⽤⽅法如下:
其中,procedurenamepattern 是存储过程名称的匹配模式。该⽅法返回的结果集是存储过程的描述信息,主要有
PROCEDURE_NAME、PROCEDURE_TYPE 等。使⽤DatabaMetaData 对象的getProceduresColumns()⽅法获取存储过程的信息,使⽤⽅法如下:
其中,cloumnnamepattern 表⽰列名的匹配模式。具体的程序代码如下:
1.编写uTable 类的基本框架,在该类中仅包括main()⽅法,在main()⽅法中先加载驱动程序,建⽴与数据库的连接,创建数据库表,获取表中信息的结果集,输出表的信息,获取表中列的信息,输出表中列的信息,获取索引信息,输出索引信息,获取存储过程信息,输出存储过程信息。
2.对数据库编程,uTable 类的代码如下:
001class uTable
002{
003public static void main(String argv[])
004{
005try
006{
007String ul,namestr,typestr,cstr,strn,indexstr,prostr;
008short data;
009int index,pron;
010String[] type={"table"};
011ul="jdbc:odbc:uDSN";
012//加载驱动程序静脉血管瘤
013Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
014//建⽴连接
015Connection Connection(ul,"sa","");
016//使⽤DatabaMetaData 对象获取数据源相关信息
017DatabaMetaData MetaData();
018//获取表中信息的结果集
019ResultSet Tables(null,null,null,type);
020//输出表的信息
教育的真谛())
022{
023//获取表名
String("TABLE_NAME");
025//获取表的类型
String("TABLE_TYPE");
027//输出结果集
028System.out.println("输出数据源中所有表的信息");
029strn="数据库表名:"+namestr+" "+"表的类型:"+typestr;
029strn="数据库表名:"+namestr+" "+"表的类型:"+typestr;
030System.out.println(strn);
031}
学校控烟工作计划032//获取表中列的信息
Columns(null,null,"student","%");
034//输出表中列的信息
())
036{
037//获取表名
String("TABLE_NAME");
039//获取列名
开机启动设置
String("COLUMN_NAME");
041//获取列类型
String("TYPE_NAME");
043//获取列的SQL 类型
卤水鸡蛋Short("DATA_TYPE");
045//输出列信息
046System.out.println("输出数据库中列的信息");
047strn="表名:"+namestr+" "+"列名:"+cstr+" "+"列类型:"+" "+"列SQL 类型:"+data; 048System.out.println(strn);
049}
050//获取索引信息
IndexInfo(null,null,"student",fal,fal);
052//输出索引信息
())
054{
055//获取索引名
String("INDEX_NAME");
057//获取索引类型
Int("TYPE");
059switch(index)
060{
061ca0:
062{
小公主爱的故事063indexstr="没有索引";
064break;
065}
066ca1:
067{
068indexstr="聚集索引";
069break;
070}
071ca2:
072{
073indexstr="哈希表索引";
074break;
075}
076ca3:
077{
078indexstr="其它索引";
079break;
080}
081}
082strn="索引名:"+namestr+" "+"索引类型:"+index;
083System.out.println(strn);
084}
085//获取存储过程信息
Procedures(null,null,"%");
087//输出存储过程信息
088System.out.println("存储过程信息");
())
090{
091//获取存储过程名称
String("PROCEDURE_NAME");
093//获取存储过程类型
Int("PROCEDURE_TYPE");
095switch(pron)
096{
097ca0:
098{
099prostr="返回结果未知";
100break;
101}
102ca1:
103{
104prostr="没有返回结果";
105break;
106}
107ca2:
108{
109prostr="有返回结果";
110break;
111}
班会的英文
112}
113strn="存储过程名称:"+namestr+" "+"存储过程类型:"+prostr;
114System.out.println(strn);
115}
116//获取存储过程列信息
ProcedureColumns(null,null,"%","%");
118//输出存储过程列信息
119System.out.println("存储过程列信息");
())
什么皮肤病会传染
121{
122//获取存储过程名称
String("PROCEDURE_NAME");
124//获取存储过程类型
String("COLUMN_NAME");
126strn="存储过程:"+namestr+" "+"存储过程列名:"+prostr;
127System.out.println(strn);
128}
129//关闭连接
130con.clo();
131}
131}
132catch(Exception e)
133{
134System.out.Message());
135  e.printStackTrace();
136}
137}
138}
因为程序使⽤了JDBC 类,所以需要引⼊import java.sql.*;包。

本文发布于:2023-06-29 19:30:35,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1068564.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:信息   获取   过程   数据库
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图