设为首页
优惠IDC
收藏本站
六狼博客
六狼论坛
开启辅助访问
切换到窄版
用户名
Email
自动登录
找回密码
密码
登录
立即注册
只需一步,快速开始
只需一步,快速开始
快捷导航
门户
首页
BBS
云计算
大数据
手机
移动开发android,ios,windows phone,windows mobile
编程
编程技术java,php,python,delphi,ruby,c,c++
前端
WEB前端htmlcss,javascript,jquery,html5
数据库
数据库开发Access,mysql,oracle,sql server,MongoDB
系统
操作系统windows,linux,unix,os,RedHat,tomcat
架构
项目管理
软件设计,架构设计,面向对象,设计模式,项目管理
企业
服务
运维实战
神马
搜索
搜索
热搜:
php
java
python
ruby
hadoop
sphinx
solr
ios
android
windows
centos
本版
帖子
用户
六狼论坛
»
首页
›
数据库开发
›
Access
›
ResultSetMetaData和DatabaseMetaData用法简介(转) ...
返回列表
查看:
121
|
回复:
0
ResultSetMetaData和DatabaseMetaData用法简介(转)
[复制链接]
rcyl2003
rcyl2003
当前离线
积分
174
窥视卡
雷达卡
升级
82.67%
当前用户组为
秀才
当前积分为
174
, 升到下一级还需要 26 点。
50
主题
50
主题
50
主题
秀才
秀才, 积分 174, 距离下一级还需 26 积分
秀才, 积分 174, 距离下一级还需 26 积分
积分
174
发消息
楼主
|
发表于 2013-1-29 23:35:29
|
显示全部楼层
|
阅读模式
内容概要:
1、ResultSetMetaData中的方法的介绍。
2、DatabaseMetaData中主要方法的介绍。
3、如何使用DatabaseMetaData类获得的信息进行反向设计表。
<span style="font-family: SimSun;" />?
??? 在论坛中看到有好多人问关于,数据库中信息和表的信息的获得的问题,如:数据库中有多少表,表中的字段的含义等,为了解决这个问题我学习了相关的两个类
ResultSetMetaData
和
DataBaseMetaData
来解决相关问题。下面是我的一些学习的心得体会,希望能够给朋友们带来一点启示或者帮助。首先是
ResultSetMetaData
:
<span style="" />
这个类完成了查询结果信息和结果中的列的各种信息。它包含的方法以及各个方法的作用,在下面这个演示程序中一一介绍。在这个演示程序中用到数据库是
Access
的,数据库中的表的名字是
STUDENTINFO
表,包含字段有
<span style="" />
IDNO
文本型
长为
8
NAME
文本型
长为
8
SEX
文本型
长为
6
AGE
数值型
长为
8
BIRTHDT
文本型
长为
8
程序中主要是操作这个表,选择的驱动是
ODBC
。程序如下:
<div style="padding: 4px 5.4pt; width: 95%;">
package
javax.util.guxing;
import
java.sql.
*
;
public
class
DBAccess
...
{
public
static
java.sql.Connection conn
=
null
;
private
String sqlStr
=
""
;
public
DBAccess()
...
{
try
...
{
Class.forName(
"
sun.jdbc.odbc.JdbcOdbcDriver
"
);
conn
=
DriverManager.getConnection(
"
jdbc:odbc:TestDB
"
,
"
admin
"
,
""
);
}
catch
(ClassNotFoundException ex)
...
{
System.out.println(ex.toString());
}
catch
(SQLException sqlEx)
...
{
System.out.println(sqlEx.toString());
}
}
public
ResultSet Search()
...
{
ResultSet rset
=
null
;
sqlStr
=
"
SELECT * FROM STUDENTINF
"
;
Statement smt
=
null
;
try
...
{
smt
=
conn.createStatement();
rset
=
smt.executeQuery(sqlStr);
}
catch
(SQLException ex)
...
{
System.out.println(
"
Exception:
"
+
ex.toString());
}
return
rset;
}
public
void
getResultSetMetaData()
...
{
ResultSet rs
=
null
;
try
...
{
String[] tp
=
...
{
"
TABLE
"
}
;
rs
=
this
.Search();
ResultSetMetaData rsmd
=
rs.getMetaData();
/**/
/*
获得ResultSetMeataData对象。所有方法的参数都是列的索引号,即第几列,从1开始
*/
System.out.println(
"
下面这些方法是ResultSetMetaData中方法
"
);
System.out.println(
"
获得1列所在的Catalog名字 :
"
+
rsmd.getCatalogName(
1
));
System.out.println(
"
获得1列对应数据类型的类
"
+
rsmd.getColumnClassName(
1
));
System.out.println(
"
获得该ResultSet所有列的数目
"
+
rsmd.getColumnCount());
System.out.println(
"
1列在数据库中类型的最大字符个数
"
+
rsmd.getColumnDisplaySize(
1
));
System.out.println(
"
1列的默认的列的标题
"
+
rsmd.getColumnLabel(
1
));
System.out.println(
"
1列的模式
"
+
rsmd.GetSchemaName(
1
));
System.out.println(
"
1列的类型,返回SqlType中的编号
"
+
rsmd.getColumnType(
1
));
System.out.println(
"
1列在数据库中的类型,返回类型全名
"
+
rsmd.getColumnTypeName(
1
));
System.out.println(
"
1列类型的精确度(类型的长度):
"
+
rsmd.getPrecision(
1
));
System.out.println(
"
1列小数点后的位数
"
+
rsmd.getScale(
1
));
System.out.println(
"
1列对应的模式的名称(应该用于Oracle)
"
+
rsmd.getSchemaName(
1
));
System.out.println(
"
1列对应的表名
"
+
rsmd.getTableName(
1
));
System.out.println(
"
1列是否自动递增
"
+
rsmd.isAutoIncrement(
1
));
System.out.println(
"
1列在数据库中是否为货币型
"
+
rsmd.isCurrency(
1
));
System.out.println(
"
1列是否为空
"
+
rsmd.isNullable(
1
));
System.out.println(
"
1列是否为只读
"
+
rsmd.isReadOnly(
1
));
System.out.println(
"
1列能否出现在where中
"
+
rsmd.isSearchable(
1
));
}
catch
(SQLException ex)
...
{
ex.printStackTrace();
}
}
public
static
void
main(String args[])
...
{
DBAccess dbAccess
=
new
DBAccess();
dbAccess.getResultSetMetaData();
}
}
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
数据挖掘
C#
wap开发
dos
Sybase
windows
WPF
算法与数据结构
架构设计
WinForm
Copyright © 2008-2020
六狼论坛
(https://it.6wolf.com) 版权所有 All Rights Reserved.
Powered by
Discuz!
X3.4
京ICP备14020293号-2
本网站内容均收集于互联网,如有问题请联系
QQ:389897944
予以删除
快速回复
返回顶部
返回列表