想入侵别人的服务器的数据库修改数据吗?不知道别人服务器的数据库类型是不行的,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(自己创建)两个数据库。主要代码: 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());
}
控制台显示如图:
(2)获取某一数据库(以mysql数据库为例如下图)下所有表的名称。 主要代码: //获取数据库mysql中表的名称 ResultSet r=dbmd.getTables("mysql",null,null,null); System.out.println("--------------"); System.out.println("获取数据库中表的名称:"); //循环输出表的名称 while(r.next()){ System.out.println(r.getString(3)); } 控制台显示如图:
(3)获取某表的列名和对应的数据类型,如下图(以mysql数据库下func表)为例。 主要代码: //获取某表的列相关信息 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)); } 控制台显示如图:
(4)获取指定表(以mysql数据库下func表为例)的主键,如下图显示name字段为func表的主键。 主要代码: //获取表的主键 ResultSet rPrimaryKey=dbmd.getPrimaryKeys("mysql", null, "func"); System.out.println("--------------"); System.out.println("获取指定表中的主键: "); //循环输出指定表的主键 while(rPrimaryKey.next()){ System.out.println(rPrimaryKey.getString(4)); } 控制台显示如图:
2) 总结和心得:
(1)该接口还能获取DBMS其他一些信息,如获取JDBC 驱动程序的主版本号,驱动程序,用户名等大家可以查阅Java API相应的文档,我就不一 一列举了。 (2)创建该接口时调用Connection的getMetaData()方法,学习该接口时,可以按API文档个试验每个函数,虽然比较土,但很有效。 (3)安装MySQL时要注意字符集的选择,否则插入记录时可能不能支持中文,如要支持,选择"gb2312"。
相关推荐
DatabaseMetaData和ResultSetMetaData就是两个常用的获取数据库元数据相关信息的接口,本文只讲解DatabaseMetaData接口获取元数据的方法。 文章地址:http://blog.csdn.net/chen_zw/article/details/18816599
JDBC读取数据库元数据,生成JAVA实体类
浅谈 JDBC 元数据 JDBC 元数据是 Java 语言中获取数据库管理系统信息的方式,通过获取元数据,可以了解数据库中的各种信息,例如数据库中的表、列、数据类型、触发器、存储过程等。获取这些信息的方法都是在 ...
《JDBC元数据、MySQL与Oracle食谱:问题解决方法》是Mahmoud Parsian撰写的一本技术书籍,深入探讨了Java数据库连接(JDBC)API在MySQL和Oracle数据库环境中的应用,为开发者提供了一系列实用的解决方案。...
JDBC 元数据是 JDBC 的一个重要组件,用于提供数据库的元数据信息。元数据包括数据库的 schema 信息、表信息、字段信息等。 元数据 Meta Data 元数据 Meta Data 是元数据的核心组件之一,提供了数据库的 schema ...
尚硅谷_佟刚_JDBC_JDBC元数据"中,我们可以期待找到有关JDBC元数据的教程或资料。JDBC元数据是关于数据库结构的信息,如表名、列名、索引等,可以通过DatabaseMetaData接口获取。这些信息对于动态构建SQL语句或自动...
8. **增强的JDBC元数据**:提供了更多关于数据库特性和结构的信息,帮助开发者更好地理解和使用数据库。 **四、JDBC连接数据库的基本步骤** 1. 加载数据库驱动:使用`Class.forName()`加载对应的JDBC驱动。 2. ...
除了深入介绍JDBC元数据API之外,本书还给出了行集的最新信息。行集技术支持以JavaBeansTM组件来处理数据集。此外,本书还介绍了JdbcRowSet、CachedRowSet、WebRowSet、JoinRowSet和FilteredRowSet对象的标准实现。 ...
除了深入介绍JDBC元数据API之外,本书还给出了行集的最新信息。行集技术支持以JavaBeansTM组件来处理数据集。此外,本书还介绍了JdbcRowSet、CachedRowSet、WebRowSet、JoinRowSet和FilteredRowSet对象的标准实现。 ...
除了深入介绍JDBC元数据API之外,本书还给出了行集的最新信息。行集技术支持以JavaBeansTM组件来处理数据集。此外,本书还介绍了JdbcRowSet、CachedRowSet、WebRowSet、JoinRowSet和FilteredRowSet对象的标准实现。 ...
在执行查询后,我们需要获取元数据信息,包括列数、列名等信息。这可以通过 ResultSetMetaData 对象来实现。我们可以使用 getColumnCount() 方法来获取列数,然后使用 getColumnLabel() 方法来获取每个列的名称。 ...
本示例将详细介绍如何使用JDBC连接到PostgreSQL数据库并执行简单的数据获取操作。PostgreSQL是一种开源的对象关系型数据库管理系统,因其强大的功能和稳定性而广受欢迎。 首先,确保已安装PostgreSQL数据库并在系统...
至于文件"Sqlmeta",这可能是生成器使用的一个元数据文件,可能包含了关于SQL查询的信息,如表名、列名、数据类型等,以便正确构建HTML表格的结构。 总的来说,jdbc数据集生成器是一个提升开发效率的实用工具,它...
本项目是一款基于Java JDBC技术的数据库元数据查询设计源码,包含59个文件,包括35个Java源代码文件、15个PNG图片文件、3个XML配置文件、3个Freemarker模板文件、1个Git忽略文件、1个授权协议文件和1个Markdown文件...
- `DatabaseMetaData` 类提供了关于数据库的各种元数据信息,例如获取所有表名、列信息、索引信息等。通过调用 `Connection` 对象的 `getMetaData()` 方法获取元数据实例,然后通过这个实例可以查询到数据库的详细...
除了常规的 JDBC 技术外,本Java视频教程更涵盖 <利用反射及 JDBC 元数据编写通用的查询方法>、<使用 DBUtils 工具类>、设计模式>、<编写通用的 DAO 接口实现类> 等企业级开发内容。 源码级讲授 DBUtils 工具类的...
习题5.3则要求编写一个Java函数,使用JDBC元数据特性列出数据库中的所有关系(表),并显示每个关系的属性(列)名称及其类型。函数通过`DatabaseMetaData`接口的`getTables()`方法获取所有表的信息,再用`...
规范文档还包含了更多技术性的描述,关于JDBC驱动、连接数据库、执行SQL语句、事务管理、元数据处理和资源管理等核心概念和技术的详细说明。 在学习JDBC的过程中,了解其规范是至关重要的。它不仅提供了接口的定义...