欢迎来到天天文库
浏览记录
ID:45055134
大小:277.84 KB
页数:11页
时间:2019-11-08
《Java数据库高级编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、利用JDBC驱动程序处理元数据JDBC驱动程序可用于获取数据库、结果集或参数的元数据。例如,JSP/JavaServlet通过JDBC驱动程序与数据库管理系统建立连接后,得到一个Connection对象,可以从这个对象获得有关数据库管理系统的各种信息,包括数据库中的各个数据表,数据表中的各个列,数据类型,触发器,存储过程等各方面的信息。利用JDBC驱动程序处理元数据根据这些信息,JDBC驱动程序可以访问一个事先并不了解的数据库。获取数据库的元数据可以通过DatabaseMetaData对象实现,该对象是通过Connection对象中的getMetaData()方法获得的。语句如下:Datab
2、aseMetaDatadbMetaData=con.getMetaData();DatabaseMetaData类DatabaseMetaData类中提供了许多方法用于获得数据源的各种信息,通过这些方法可以详细了解数据库的信息。常见方法如下:getURL():返回一个String类对象,代表数据库的URL。getUserName():返回连接当前数据库管理系统的用户名。getDriverName():返回驱动驱动程序的名称。DatabaseMetaData类isReadOnly():返回一个boolean值,指示数据库是否只允许读操作。getDatabaseProductName():返回数
3、据库的产品名称。getDatabaseProductVersion():返回数据库的版本号。getDriverVersion():返回驱动程序的版本号。DatabaseMetaData类getMaxConnections():返回可能连接到该数据库的最大并发连接数。getMaxColumnsInTable():返回此数据库在表中允许的最大列数。getMaxColumnNameLength():返回此数据库在列名中允许的最大字符数。getMaxTableNameLength():返回此数据库在表名中允许的最大字符数。DatabaseMetaData类举例:利用DatabaseMetaData接
4、口对象中的有关方法获取gzk.mdb的有关信息(Getdbinfo.java)使用结果集元数据利用ResultSet对象中的getMetaData()方法可以获取ResultSetMetaData接口对象,利用该对象的提供方法可以获取有关结果集中所包含列的名称和数据类型的信息。常见方法如下:getColumnCount():返回数据表的列数。getColumnName():返回数据表中的列名称,即字段名。getColumnType():返回字段的类型。使用结果集元数据getColumnName():返回数据表中的列名称,即字段名。举例:获取gzk.mdb中gzb表的有关信息(Gettable
5、info.java)getTables()方法:格式如下getTables(Stringcatalog,Stringschemapattern,Stringtablenamepattern,Strin[]type)功能:返回一个ResultSet对象。使用结果集元数据参数说明:catalog:为目录名,“”(空串)可以检索没有目录的表,null表示忽略目录;schemapattern:为大纲名称的匹配模式,“”可以检索没有大纲的表;tablenamepattern:为表名匹配模式;type:为需要检索的表类型列表,null表示返回所有类型。使用结果集元数据例如,获取指定表的信息:m_DBMe
6、taData=con.getMetaData();ResultSettableRet=m_DBMetaData.getTables(null,"%",m_TableName,newString[]{"TABLE"});其中,“%”表示任意的意思,m_TableName是要获取的数据表的名字,如果想获取所有表的名字,可以使用“%”来作为参数。getTables方法的返回结果保存在一个类似table的内存结构中。其中,TABLE_NAME这个名字的字段就是每个表的名字。使用结果集元数据利用getColumns()提取表内的字段名和字段类型,程序片段如下:ResultSetcolRet=m_DBM
7、etaData.getColumns(null,"%",m_TableName,"%");while(colRet.next()){columnName=colRet.getString("COLUMN_NAME");columnType=colRet.getString("TYPE_NAME");datasize=colRet.getInt("COLUMN_SIZE");}举例:Gettablemetdat
此文档下载收益归作者所有