java中如何得到数据库中表的字段类型 10

假设是access数据库,如何得到表中的字段类型,如何得到表名,有多少表?尽量帮忙,能借决一个是一个,谢谢了。补充一下,还有如何得到表中的所有字段的数量... 假设是access数据库,如何得到表中的字段类型,如何得到表名,有多少表?尽量帮忙,能借决一个是一个,谢谢了。
补充一下,还有如何得到表中的所有字段的数量
展开
 我来答
2471615
2007-11-30 · TA获得超过484个赞
知道小有建树答主
回答量:257
采纳率:0%
帮助的人:0
展开全部
经过access测试,ok

String url = "jdbc:odbc:test";//最后一个为数据库名
Statement sm = null;
String command = null;
ResultSet rs = null;
String tableName = null;
String cName = null;
String result = null;
String []pram = new String[1];
List <String> tables = new ArrayList<String>();
pram[0] = "table";
BufferedReader input = new BufferedReader(new InputStreamReader(
System.in));
try {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // 加载驱动
} catch (ClassNotFoundException e) {
System.out.println("Can not load Jdbc-Odbc Bridge Driver");
System.err.print("ClassNotFoundException:");
System.err.println(e.getMessage());
}
Connection con = DriverManager.getConnection(url, "admin", "admin"); // 连接到数据库
DatabaseMetaData dm = con.getMetaData();
rs = dm.getTables(null, null, null, pram);//查找所有的表
while(rs.next()){
tables.add(rs.getString(3));
}
rs.close();
for(String tb : tables){
rs = dm.getColumns(null, null, tb, null);//查找当前表的字段
System.out.println("\nthe table is: " + tb);
ResultSetMetaData rsmd = rs.getMetaData();
int len, type;
len = rsmd.getColumnCount();
// System.out.println(len);
for(int i = 1; i <= len; i ++){
type = rsmd.getColumnType(i);
//这里是获取了一个字段类型的int型,需要转化成string的话要做一个swtich,就不转了,你自己看java.sql.Types这个类去
System.out.print("\t" + rsmd.getColumnName(i) + ": " + rsmd.getColumnType(i));
}
}
rs.close();
con.close();
// }
} catch (SQLException ex) {
System.out.println("SQLException:");
while (ex != null) {
System.out.println("Message:" + ex.getMessage());
ex = ex.getNextException();
}
} catch (Exception e) {
System.out.println("IOException");
}
yinfengnong
2007-11-30 · TA获得超过5619个赞
知道大有可为答主
回答量:2344
采纳率:89%
帮助的人:2300万
展开全部
ResultSetMetaData类的
int getColumnCount() throws SQLException
返回表的列数
int getColumnType(int column)throws SQLException
获取指定列的 SQL 类型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
修洋章春晓
2019-08-13 · TA获得超过3799个赞
知道大有可为答主
回答量:3180
采纳率:31%
帮助的人:194万
展开全部
经过access测试,ok
String
url
=
"jdbc:odbc:test";//最后一个为数据库名
Statement
sm
=
null;
String
command
=
null;
ResultSet
rs
=
null;
String
tableName
=
null;
String
cName
=
null;
String
result
=
null;
String
[]pram
=
new
String[1];
List
<String>
tables
=
new
ArrayList<String>();
pram[0]
=
"table";
BufferedReader
input
=
new
BufferedReader(new
InputStreamReader(
System.in));
try
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//
加载驱动
}
catch
(ClassNotFoundException
e)
{
System.out.println("Can
not
load
Jdbc-Odbc
Bridge
Driver");
System.err.print("ClassNotFoundException:");
System.err.println(e.getMessage());
}
Connection
con
=
DriverManager.getConnection(url,
"admin",
"admin");
//
连接到数据库
DatabaseMetaData
dm
=
con.getMetaData();
rs
=
dm.getTables(null,
null,
null,
pram);//查找所有的表
while(rs.next()){
tables.add(rs.getString(3));
}
rs.close();
for(String
tb
:
tables){
rs
=
dm.getColumns(null,
null,
tb,
null);//查找当前表的字段
System.out.println("\nthe
table
is:
"
+
tb);
ResultSetMetaData
rsmd
=
rs.getMetaData();
int
len,
type;
len
=
rsmd.getColumnCount();
//
System.out.println(len);
for(int
i
=
1;
i
<=
len;
i
++){
type
=
rsmd.getColumnType(i);
//这里是获取了一个字段类型的int型,需要转化成string的话要做一个swtich,就不转了,你自己看java.sql.Types这个类去
System.out.print("\t"
+
rsmd.getColumnName(i)
+
":
"
+
rsmd.getColumnType(i));
}
}
rs.close();
con.close();
//
}
}
catch
(SQLException
ex)
{
System.out.println("SQLException:");
while
(ex
!=
null)
{
System.out.println("Message:"
+
ex.getMessage());
ex
=
ex.getNextException();
}
}
catch
(Exception
e)
{
System.out.println("IOException");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式