`

JDBC元数据

    博客分类:
  • JDBC
 
阅读更多
以下摘自http://hi.baidu.com/lisiaccp/blog/item/901a15c30d3876130ef477da.html

想入侵别人的服务器的数据库修改数据吗?不知道别人服务器的数据库类型是不行的,JDBC中有一个获取数据库元数据的方法,可以获得数据库的相关信息。例:

Connection conn = JdbcUtils.getConnection();

DatabaseMetaData dbmd = conn.getMetaData();        //获得数据库元数据信息的对象

System.out.println(“数据库名:” + dbmd.getDatabaseProductName()); //比如打印出MYSQL

Systme.out.println(“是否支持事务处理:”+dbmd.supportsTransactions()); //比如打印出True

……        //还有很多方法,自己看IDE的提示

Conn.close();

 

还有些获取参数的原数据信息:

……

ParameterMetaData pmd = ps.getParameterMetaData(); //参数的元数据信息

 

例如Object[ ] params是通过外界方法调用传进来的,可以用

int count = pmd.getParameterCount(); 来获得传入参数的个数

 

//int index 是索引位,就是(?)占位符的位置

pmd.getParameterClassName( index ) //获得JAVA中的类型名,如打印出java.lang.String

pmd.getParameterType( index ) //获得类型号,比如打印出 12 ,代表VARCHAR类型

pmd.getParameterTypeName( index ) //获得数据库中的类型名,如打印出VARCHAR

这些方法需要依赖于数据库的JDBC是否支持,如MYSQL就不支持,都只会打印出VARCHAR类型的值
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
以 下摘自http://iiec.cqu.edu.cn/wiki/index.php?title=JDBC%E5%85%83%E6%95%B0%E6 %8D%AE%E7%9B%B8%E5%85%B3%E6%8E%A5%E5%8F%A3%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E&oldid=3861

JDBC元数据主要用到DatabaseMetaData、ResultSetMetaData这两个接口
一、interface DatabaseMetaData  此接口由驱动供应商实现,主要描述数据库的整体综合信息,让用户了解DBMS与驱动程序相结合时的能力。
1)  DatabaseMetaData的主要函数功能(对项目有用的)及代码实现(我是以MySQL为实例编写代码)

 (1)获取MySQL中包含数据库的名称,由下图可看出MySQL中有mysql(系统自带)、test(自己创建)两个数据库。   Image:MySQL.JPG      
主要代码: try{ //显示加载MySQL的驱动
 Class.forName("org.gjt.mm.mysql.Driver");
 }catch(Exception e){
 System.out.println("Class not find");
}
 try{
 String url="jdbc:mysql://localhost:3306/mysql";//数据源的名称
 String username="root"; //用户名
 String password="3511996"; //密码
//创建Connection对象连接数据库 Connection conn=DriverManager.getConnection(url, username, password);
//创建一个DatabaseMetaData对象 DatabaseMetaData dbmd=conn.getMetaData();
//获取可在MySQL中使用的数据库名称 ResultSet rCatalogs=dbmd.getCatalogs(); System.out.println("--------------"); System.out.println("获取可在此数据管理系统中使用的数据库名称: ");
//循环输出数据库名称
 while(rCatalogs.next()){
 System.out.println(rCatalogs.getString(1));
 }
 }catch(Exception e){
 System.out.println(e.getMessage());
 }
 控制台显示如图:
Image:Data.jpg
  (2)获取某一数据库(以mysql数据库为例如下图)下所有表的名称。     Image:Table.jpg    主要代码:
        //获取数据库mysql中表的名称           ResultSet r=dbmd.getTables("mysql",null,null,null);          System.out.println("--------------");         System.out.println("获取数据库中表的名称:"); //循环输出表的名称          while(r.next()){         System.out.println(r.getString(3));         }  控制台显示如图:     Image:Tabledisplay.jpg
  (3)获取某表的列名和对应的数据类型,如下图(以mysql数据库下func表)为例。   Image:Column.jpg     主要代码:
        //获取某表的列相关信息          ResultSet rColumns=dbmd.getColumns("mysql", null, "func", null);          System.out.println("--------------");          System.out.println("获取检索可在指定类别中使用的表列的描述:");          System.out.print("列名\t");          System.out.println("数据类型"); //循环输出列名和数据类型          while(rColumns.next()){              System.out.print(rColumns.getString(4)+"\t");              System.out.println(rColumns.getString(6));              } 控制台显示如图:    Image:ColumnName.jpg
  (4)获取指定表(以mysql数据库下func表为例)的主键,如下图显示name字段为func表的主键。    Image:Column.jpg     主要代码:
        //获取表的主键          ResultSet rPrimaryKey=dbmd.getPrimaryKeys("mysql", null, "func");         System.out.println("--------------");         System.out.println("获取指定表中的主键: ");  //循环输出指定表的主键          while(rPrimaryKey.next()){              System.out.println(rPrimaryKey.getString(4));                }    控制台显示如图:  Image:Primarykey.jpg 

2)  总结和心得:

(1)该接口还能获取DBMS其他一些信息,如获取JDBC 驱动程序的主版本号,驱动程序,用户名等大家可以查阅Java API相应的文档,我就不一   一列举了。  (2)创建该接口时调用Connection的getMetaData()方法,学习该接口时,可以按API文档个试验每个函数,虽然比较土,但很有效。  (3)安装MySQL时要注意字符集的选择,否则插入记录时可能不能支持中文,如要支持,选择"gb2312"。 
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    JDBC元数据操作--DatabaseMetaData接口Demo

    DatabaseMetaData和ResultSetMetaData就是两个常用的获取数据库元数据相关信息的接口,本文只讲解DatabaseMetaData接口获取元数据的方法。 文章地址:http://blog.csdn.net/chen_zw/article/details/18816599

    JDBC读取数据库元数据,自动生成JAVA实体类

    JDBC读取数据库元数据,生成JAVA实体类

    浅谈 JDBC 元数据

    浅谈 JDBC 元数据 JDBC 元数据是 Java 语言中获取数据库管理系统信息的方式,通过获取元数据,可以了解数据库中的各种信息,例如数据库中的表、列、数据类型、触发器、存储过程等。获取这些信息的方法都是在 ...

    JDBC Metadata MySQL and Oracle Recipes

    《JDBC元数据、MySQL与Oracle食谱:问题解决方法》是Mahmoud Parsian撰写的一本技术书籍,深入探讨了Java数据库连接(JDBC)API在MySQL和Oracle数据库环境中的应用,为开发者提供了一系列实用的解决方案。...

    jdbc实例教程

    JDBC 元数据是 JDBC 的一个重要组件,用于提供数据库的元数据信息。元数据包括数据库的 schema 信息、表信息、字段信息等。 元数据 Meta Data 元数据 Meta Data 是元数据的核心组件之一,提供了数据库的 schema ...

    JDBC学习资料和使用工具

    尚硅谷_佟刚_JDBC_JDBC元数据"中,我们可以期待找到有关JDBC元数据的教程或资料。JDBC元数据是关于数据库结构的信息,如表名、列名、索引等,可以通过DatabaseMetaData接口获取。这些信息对于动态构建SQL语句或自动...

    驱动程序jdbc_4.2

    8. **增强的JDBC元数据**:提供了更多关于数据库特性和结构的信息,帮助开发者更好地理解和使用数据库。 **四、JDBC连接数据库的基本步骤** 1. 加载数据库驱动:使用`Class.forName()`加载对应的JDBC驱动。 2. ...

    JDBC API教程与参考手册part3

    除了深入介绍JDBC元数据API之外,本书还给出了行集的最新信息。行集技术支持以JavaBeansTM组件来处理数据集。此外,本书还介绍了JdbcRowSet、CachedRowSet、WebRowSet、JoinRowSet和FilteredRowSet对象的标准实现。 ...

    JDBC API教程与参考手册part4

    除了深入介绍JDBC元数据API之外,本书还给出了行集的最新信息。行集技术支持以JavaBeansTM组件来处理数据集。此外,本书还介绍了JdbcRowSet、CachedRowSet、WebRowSet、JoinRowSet和FilteredRowSet对象的标准实现。 ...

    JDBC API教程与参考手册part2

    除了深入介绍JDBC元数据API之外,本书还给出了行集的最新信息。行集技术支持以JavaBeansTM组件来处理数据集。此外,本书还介绍了JdbcRowSet、CachedRowSet、WebRowSet、JoinRowSet和FilteredRowSet对象的标准实现。 ...

    java使用jdbc将数据库数据导出到csv文件.pdf

    在执行查询后,我们需要获取元数据信息,包括列数、列名等信息。这可以通过 ResultSetMetaData 对象来实现。我们可以使用 getColumnCount() 方法来获取列数,然后使用 getColumnLabel() 方法来获取每个列的名称。 ...

    JDBC 连接到 PostgreSQL 数据库获取数据简单例子

    本示例将详细介绍如何使用JDBC连接到PostgreSQL数据库并执行简单的数据获取操作。PostgreSQL是一种开源的对象关系型数据库管理系统,因其强大的功能和稳定性而广受欢迎。 首先,确保已安装PostgreSQL数据库并在系统...

    jdbc数据集生成器

    至于文件"Sqlmeta",这可能是生成器使用的一个元数据文件,可能包含了关于SQL查询的信息,如表名、列名、数据类型等,以便正确构建HTML表格的结构。 总的来说,jdbc数据集生成器是一个提升开发效率的实用工具,它...

    基于Java JDBC的数据库元数据查询设计源码

    本项目是一款基于Java JDBC技术的数据库元数据查询设计源码,包含59个文件,包括35个Java源代码文件、15个PNG图片文件、3个XML配置文件、3个Freemarker模板文件、1个Git忽略文件、1个授权协议文件和1个Markdown文件...

    JDBCJDBC高级应用

    - `DatabaseMetaData` 类提供了关于数据库的各种元数据信息,例如获取所有表名、列信息、索引信息等。通过调用 `Connection` 对象的 `getMetaData()` 方法获取元数据实例,然后通过这个实例可以查询到数据库的详细...

    尚硅谷jdbc源码整理

    除了常规的 JDBC 技术外,本Java视频教程更涵盖 <利用反射及 JDBC 元数据编写通用的查询方法>、<使用 DBUtils 工具类>、设计模式>、<编写通用的 DAO 接口实现类> 等企业级开发内容。  源码级讲授 DBUtils 工具类的...

    chapter05 实践习题1

    习题5.3则要求编写一个Java函数,使用JDBC元数据特性列出数据库中的所有关系(表),并显示每个关系的属性(列)名称及其类型。函数通过`DatabaseMetaData`接口的`getTables()`方法获取所有表的信息,再用`...

    JDBC 4.3规范文档

    规范文档还包含了更多技术性的描述,关于JDBC驱动、连接数据库、执行SQL语句、事务管理、元数据处理和资源管理等核心概念和技术的详细说明。 在学习JDBC的过程中,了解其规范是至关重要的。它不仅提供了接口的定义...

Global site tag (gtag.js) - Google Analytics