有关 JDBC 元数据的简单解析
来源:互联网 发布:石原慎太郎 知乎 编辑:程序博客网 时间:2024/05/19 13:30
在 java 程序开发中,我们要操作数据库最基本的方法就是使用 JDBC ,在 JDBC 技术规范中,提供了 Connection、Statement、PreparedStatement、ResultSet 等常用的编程接口。针对这些接口,JDBC 规范又提供了相应的接口描述规范,即 xxxMetaData ,DatabaseMetaData 以及 ResultSetMetaData 是两个常用的获取数据库元数据的相关信息的接口。
DatabaseMetaData 接口常用的方法有:
ResultSet getTables(String catalog,String schemaPattern,String tableNamePattern,String[] types); //获取表信息 ResultSet getPrimaryKeys(String catalog,String schema,String table); //获取表主键信息ResultSet getIndexInfo(String catalog,String schema,String table,boolean unique,boolean approximate); //获取表索引信息 ResultSet getColumns(String catalog,String schemaPattern,String tableNamePattern,String columnNamePattern); //获取表列信息简单示例代码如下:
<span style="white-space:pre"></span> DatabaseMetaData dbmd = conn.getMetaData(); System.out.println("数据库已知的用户: "+ dbmd.getUserName()); System.out.println("数据库URL: " + dbmd.getURL()); System.out.println("是否允许只读:" + dbmd.isReadOnly()); System.out.println("数据库的产品名称:" + dbmd.getDatabaseProductName()); System.out.println("数据库的版本:" + dbmd.getDatabaseProductVersion()); System.out.println("驱动程序的名称:" + dbmd.getDriverName()); System.out.println("驱动程序的版本:" + dbmd.getDriverVersion()); System.out.println("数据库中使用的表类型"); rs = dbmd.getTableTypes();
ResultSetMetaData 是用来描述 ResultSet 的,ResultSet 是 JDBC 中很重要的一个对象,用它来抽象长度和宽度均未知的数据表,几乎所有的方法和查询都将结果以 ResultSet 返回。当我们获得 ResultSet 时,它正好指向第一行之前的位置,因此我们可以使用 next 方法来遍历每一行数据。ResultSetMetaData 是用来描述 ResultSet 的对象,可以使用此对象获取列的数目、类型以及列的别名等。ResultSetMetaData 中常用的方法有:
getColumnCount(); 返回 ResultSet 中的列数。 getColumnName(int); 返回列序号为 int 的列名。 getColumnLabel(int); 返回此列暗含的标签。 isCurrency(int); 如果此列包含带有货币单位的一个数字,则返回 true。 isReadOnly(int); 如果此列为只读,则返回 true。 isAutoIncrement(int); 如果此列自动递增,则返回 true。这类列通常为键,而且始终是只读的。 getColumnType(int); 返回此列的 SQL 数据类型。简单的示例代码如下:
ResultSetMetaData resultMetaData = results.getMetaData(); int cols = resultMetaData.getColumnCount(); String resultRow = ""; for (int i = 1; i < cols; i++) { resultRow += resultMetaData.getColumnName(i) + ";"; } System.out.println(resultRow); while (results.next()) { resultRow = ""; for (int i = 1; i < cols; i++) { try { resultRow += results.getString(i) + ";"; } catch (NullPointerException e) { System.out.println(e.getMessage()); } } System.out.println(resultRow); }
0 0
- 有关 JDBC 元数据的简单解析
- 有关TinyXML使用的简单总结:来解析XML数据
- 有关TinyXML使用的简单总结:来解析XML数据
- JDBC获取数据库的元数据信息
- JDBC_通过JDBC获得的元数据
- JDBC ---- 元数据
- 【JDBC】day02_PreparedStatement_元数据
- JDBC之元数据
- JDBC基础-元数据
- JDBC MetaData (元数据)
- 有关SQLServer2000元数据读取
- as3 元数据标签的意义解析
- 元数据与jdbc框架
- JDBC 获取元数据DatabaseMetaData
- JDBC之元数据分析
- 有关海量数据的处理简单总结
- JDBC(五) JDBC元数据
- 通过JDBC的DatabaseMetaData获取数据库元数据
- Light OJ 1410 - Consistent Verdicts 【排序去重】
- java.lang.IllegalArgumentException: Document base D:\Tomcat 5.0\me-webapps\Tomcat 5.0\me-webapps\Tom
- 线性代数的本质
- Surface Book
- Excel数据插入Mysql数据库可能遇到的问题
- 有关 JDBC 元数据的简单解析
- Web前端 - Easy UI的Tree插件和DataGrid插件实战
- C语言实现链表之单向链表(十四)链表打印和排序
- 第一章 综述
- 代码的有效性问题
- iOS项目中删除默认的并使用自建的ViewController后黑屏
- linux中mmap系统调用原理分析与实现
- HDU 1058 Humble Numbers
- 关于字符串复制函数my_strcpy的三种方法