java开源的JDBC驱动
http://www.open-open.com/65.htm
链接方式请参考 jdbc connections
下面开始以SqlServer2005 为例举个例子
下载 Microsoft SQL Server JDBC Driver 2.0 下载地址
今天主要研究的是
DatabaseMetaData的用法
一 、得到这个对象的实例
Connection con ;
con = DriverManager.getConnection(url,userName,password);
DatabaseMetaData dbmd = con.getMetaData();
二、方法getTables的用法
原型:
ResultSet DatabaseMetaData.getTables(String catalog,String schema,String tableName,String []type)
此方法可返回结果集合ResultSet ,结果集中有5列, 超出会报越界异常
功能描述:得到指定参数的表信息
参数说明:
参数:catalog:目录名称,一般都为空.
参数:schema:数据库名,对于oracle来说就用户名
参数:tablename:表名称
参数:type :表的类型(TABLE | VIEW)
注意:在使用过程中,参数名称必须使用大写的。否则得到什么东西。
三、方法getColumns的用法
功能描述:得到指定表的列信息。
原型:
ResultSet DatabaseMetaData getColumns(String catalog,String schema,String tableName,String columnName)
参数说明:
参数catalog : 类别名称
参数schema : 用户方案名称
参数tableName : 数据库表名称
参数columnName : 列名称
四、方法getPrimaryKeys的用法
功能描述:得到指定表的主键信息。
原型:
ResultSet DatabaseMetaData getPrimaryKeys(String catalog,String schema,String tableName)
参数说明:
参数catalog : 类别名称
参数schema : 用户方案名称
参数tableName : 数据库表名称
备注:一定要指定表名称,否则返回值将是什么都没有。
五、方法.getTypeInfo()的用法
功能描述:得到当前数据库的数据类型信息。
六、方法getExportedKeys的用法
功能描述:得到指定表的外键信息。
参数描述:
参数catalog : 类别名称
参数schema : 用户方案名称
参数tableName : 数据库表名称
DatabaseMetaData对象提供的是关于数据库的各种信息,这些信息包括:
1、数据库与用户,数据库标识符以及函数与存储过程。
2、数据库限制。
3、数据库支持不支持的功能。
4、架构、编目、表、列和视图等。
通过调用DatabaseMetaData的各种方法,程序可以动态的了解一个数据库。由于这个类中的方法非常的多那么就介绍几个常用的方法来给大家参考。
DatabaseMetaData实例的获取方法是,通过连接来获得的
Connection conn = //创建的连接。
DatabaseMetaData dbmd = Conn.getMetaData();
创建了这个实例,就可以使用他的方法来获取数据库得信息。首先是数据库中用户标识符的信息的获得,主要使用如下的方法:
getDatabaseProductName()用以获得当前数据库是什么数据库。比如oracle,access等。返回的是字符串。
getDatabaseProductVersion()获得数据库的版本。返回的字符串。
getDriverVersion()获得驱动程序的版本。返回字符串。
supportsResultSetType(ResultSet.resultype)是判定是否支持这种结果集的类型。比如参数如果是Result.TYPE_FORWARD_ONLY,那就是判定是否支持,只能先前移动结果集的指针。返回值为boolean,true表示支持。
上面介绍的只是几个常用的方法,这个类中还有很多方法,可以到jdk的帮助文档中去查看类java.sql.DatabaseMetaData。
这个类中还有一个比较常用的方法就是获得表的信息。使用的方法是:
getTables(String catalog,String schema,String tableName,String[] types),
这个方法带有四个参数,他们表示的含义如下:
String catalog——要获得表所在的编目。串“”””意味着没有任何编目,Null表示所有编目。
String schema——要获得表所在的模式。串“”””意味着没有任何模式,Null表示所有模式。该参数可以包含单字符的通配符(“_”),也可以包含多字符的通配符(“%”)。
String tableName——指出要返回表名与该参数匹配的那些表,该参数可以包含单字符的通配符(“_”),也可以包含多字符的通配符(“%”)。
String types——一个指出返回何种表的数组。可能的数组项是:”TABLE”,”VIEW”,”SYSTEM TABLE”,”GLOBAL TEMPORARY”,”LOCAL TEMPORARY”,”ALIAS”,“SYSNONYM”。
通过getTables()方法返回一个表的信息的结果集。这个结果集包括字段有:TABLE_CAT表所在的编目。TABLE_SCHEM表所在的模式,TABLE_NAME表的名称。TABLE_TYPE标的类型。REMARKS一段解释性的备注。通过这些字段可以完成表的信息的获取。
还有两个方法一个是获得列getColumns(String catalog,String schama,String tablename,String columnPattern)一个是获得关键字的方法getPrimaryKeys(String?catalog, String?schema, String?table)这两个方法中的参数的含义和上面的介绍的是相同的。凡是pattern的都是可以用通配符匹配的。getColums()返回的是结果集,这个结果集包括了列的所有信息,类型,名称,可否为空等。getPrimaryKey()则是返回了某个表的关键字的结果集。
通过getTables(),getColumns(),getPrimaryKeys()就可以完成表的反向设计了。主要步骤如下:
1、通过getTables()获得数据库中表的信息。
2、对于每个表使用,getColumns(),getPrimaryKeys()获得相应的列名,类型,限制条件,关键字等。
3、通过1,2获得信息可以生成相应的建表的SQL语句。
通过上述三步完成反向设计表的过程。
分享到:
相关推荐
1. **安装与配置**:使用MySQL JDBC驱动前,需要将其jar文件(如`mysql-connector-java-5.17.jar`)添加到Java项目的类路径中。在IDE如Eclipse或IntelliJ IDEA中,可以通过添加库或依赖的方式完成。在命令行环境中,...
在“标签”中提到的“源码”可能是指这些JDBC驱动的源代码,开发者可以研究它们的工作原理,甚至对其进行修改或扩展以满足特定需求。而“工具”可能指的是使用JDBC驱动进行数据库操作的一些辅助工具或框架,例如...
SQL Server 2005 和 2008 是微软公司推出的两个版本的数据库管理系统,广泛应用于企业级数据存储和...通过深入研究提供的文档,开发者可以充分利用JDBC驱动的功能,优化应用程序的性能,并确保与SQL Server的稳定通信。
在本文中,我们研究了几种重要的MS SQL Server第IV类JDBC驱动程序及其在JBuilder6.0中的使用方法。首先,我们将探讨JDBC API的基础知识,然后深入了解第IV类JDBC驱动程序的特点,最后详细分析几种适用于MS SQL ...
通过深入研究这个2014.1版本的SQLite JDBC Driver源码,开发者不仅可以学习到如何实现一个JDBC驱动,还可以了解SQLite数据库的工作原理,以及如何在Java项目中高效地使用SQLite。这对于进行数据库开发或者想要实现...
刚研究maven不久,遇到一个比较头疼的问题,在工程里怎么下都下载不了oracle的jdbc驱动。 刚还以为是网络问题,重新下载了很多次,都提示maven库里找不到相关jar文件。网上一查,原来是这个驱动包是需要Oracle官方...
- **管理JDBC驱动程序**:JDBCDriverManager是一个核心组件,负责管理各种数据库供应商提供的JDBC驱动程序。它通过加载相应的驱动程序来实现对不同数据库系统的访问。 - **统一的编程接口**:通过JDBC...
总之,配置 SAP NetWeaver 和 Composite Environment 上的 JDBC 数据源是一个涉及多个步骤的过程,包括安装驱动程序、使用 Visual Administrator 或 Console Administrator 进行配置、设置必要的连接属性等。...
1. `Driver`接口:所有JDBC驱动都必须实现这个接口,注册到JDBC DriverManager中,以便于应用程序通过`Class.forName()`加载和使用。 2. `Connection`接口:表示与数据库的会话,通过它执行SQL语句并管理事务。 3....
描述中提到,“Access_JDBC30亲自使用没有50次和1000条的限制”,意味着这个特定的JDBC驱动程序可能在某些方面比官方版本更宽松,比如可能取消了对连接次数或每次查询返回数据量的限制。这对于开发和测试环境特别...
2. **JDBC驱动程序**:这是JDBC与具体数据库通信的关键组件,负责将JDBC调用转换为数据库特有的调用格式,实现数据的读取与写入。 3. **数据库管理系统(DBMS)**:包括Oracle、DB2、SQL Server、MySQL等,是数据...
对于想要提升数据库编程技能,或者对JDBC驱动实现感兴趣的开发者来说,研究sqljdbc4的源码无疑是一个极具价值的学习路径。通过这个过程,开发者不仅可以深化对JDBC的理解,还能提高自己解决问题和调试驱动的能力。
通过研究【jdbc5.1.17src】中的源代码,开发者可以深入理解JDBC的工作机制,掌握如何更有效地利用JDBC进行数据库操作,甚至为特定场景定制优化的JDBC驱动。同时,这也为学习数据库编程、数据库设计和系统集成提供了...
在网吧管理系统中,可能使用的是网络纯Java驱动,因为它无需安装额外的数据库驱动,只需包含对应的JDBC驱动类库即可。 2. 数据库URL:这是指连接到特定数据库的地址,包含了数据库类型、服务器名称、端口号以及...
研究最后提供了实现数据库访问的关键代码示例,这些代码展示了如何通过JDBC API加载驱动程序、建立连接以及执行数据库操作。这些示例代码对于理解和学习如何在Java中使用JDBC API进行数据库编程十分有帮助。 总结来...
"demo.zip"文件包含了一系列示例和配置文件,帮助开发者理解和使用Oracle JDBC驱动。以下是其中每个文件的主要内容和用途: 1. **ojdbc.policy**:这是一个Java安全策略文件,用于定义JDBC驱动程序运行时的安全权限...
此外,对于源码分析,可以研究 Oracle JDBC 驱动的实现,理解其内部工作机制,如如何解析 SQL 语句、如何优化执行计划等。这对于提高数据库性能和解决数据库相关问题非常有帮助。同时,了解相关工具如 SQL Developer...
oracle jdbc driver 源码 供研究源代码。
使用JDBC连接SQL Server,需要使用对应的JDBC驱动,如`mssql-jdbc.jar`。 5. **销售系统示例** 在`ch13_JDBC_Demo`中,我们可以找到一个简单的销售系统实现。它可能包含了用户登录、商品信息管理、销售记录查询等...
在JDBC驱动程序方面,许多研究者对JDBC驱动程序的性能和兼容性进行了深入探究。同时,针对JDBC API的使用和扩展,也有不少学者进行了相关研究。 二、JDBC技术的实现 JDBC技术主要由驱动程序、API和语法三部分构成...