`
wind_bell
  • 浏览: 291971 次
  • 性别: Icon_minigender_2
  • 来自: 广州
社区版块
存档分类
最新评论

JDBC初级应用(二)注:转

    博客分类:
  • JDBC
阅读更多
JDBC初级应用实例(二)[动态访问数据库]

    上面有一位朋友问了,如果在已经连结的情况下,知道当前连结的库的表的情况呢?
其实只你已经连结了,你就能知道这个库中所以情况而不仅仅上表的情况:

    有时(我到目前只见到过一次),我们对一种新的数据库根本不知道它的结构或者是
其中的内容,好坏么我们如何来获取数据库的情况呢?
    真实的例子是这样的,我的朋友的公司接到了一个单子,对方使用的数据库是叫什么
"titanium"的,说实话由于本人的孤陋寡闻,在此之前从来不知道还有这种数据库,更别说如何
访问了,现在朋友要看里面有什么"东西",当然是一筹莫展.所以只好找我.
    接到电话后,我先问他是什么平台上跑的,如果连结的,他说是在windows下可以建立
ODBC数据源,哈哈,就是说可以用java建立Connection了,OK
    只能建立一下Connection,那么就可以得到这个数据库的所有元信息:
    DatabaseMetadata dbmd = conn.getMetadata();然后你可以从这个对象获取以下信
息:
    getUrl();      //返回与这个数据库的连结的URL,当然是已知的,要不你怎么连上去
    getUserName(); //返回与这个数据库的连结的用户,同上
    isReadOnly();数据库是否为只读
    getDatabaseProduceName();//数据库产品名称
    getDatabaseProduceVersion();//版本号
    getDriverName();//驱动程序
    getDriverVersion();//驱动程序版本

    以上内容没有什么意义

    ResultSet getTables(String catalog, 
                String schemaPattern,
                String tableNamePattern,
                String[] types) 
    可以得到该库中"表"的所有情况,这里的表包括表,视图,系统表,临时空间,别名,同义词
    对于各参数:
    String catalog,表的目录,可能为null,"null"匹配所有
    String schemaPattern,表的大纲,同上
    String tableNamePattern,表名,同上
    String[] types,表的类型,"null"匹配所有,可用的类型为:
    TABLE,VIEW,SYSEM TABLE,GLOBAL TEMPORARY,LOCAL  TEMPORARY,ALIAS,SYNONYM

    例如:
        DatabaseMetaData dbmd = conn.getMetaData();
        ResultSet rs = dbmd.getTables(null,null,null,null);
        ResultSetMetaData rsmd = rs.getMetaData();
        int j = rsmd.getColumnCount();
        for(int i=1;i<=j;i++){
            out.print(rsmd.getColumnLabel(i)+"\t");
        }
        out.println();
        while(rs.next()){
            for(int i=1;i<=j;i++){
                out.print(rs.getString(i)+"\t");
            }
            out.println();
        }
    对于更详细的表中的列的信息,可以用dbmd(不是rsmd).getColumns(
            String catalog,
            String schemaPattern,
            String tableNamePattern,
            String columnNamePattern
        )
    不仅可以获得rsmd中的信息,还可以获得列的大小,小数位数,精度,缺省值,列在表中
的位置等相关信息.
    还有两个方法,调用和获取表信息一样,可以获得存储过程和索引的信息:
    ResultSet getProcedures(
            String catalog,
            String schemaPattern,
            String procedurePattern
        );
    ResultSet getIndexINFO(
            String catalog,
            String schemaPattern,
            String table,
            boolean unique,boolean approximate
        );  
分享到:
评论

相关推荐

    com.microsoft.sqlserver.jdbc.SQLServerException: 只进结果集不支持请求的操作 解决方案

    此异常通常发生在使用JDBC驱动连接SQL Server数据库并尝试执行某些操作(如分页)时。具体而言,当使用`setFirstResult()`和`setMaxResults()`方法对查询结果集进行限制时,如果结果集被标记为只进(forward-only)...

    Java连接达梦数据库驱动dm_jdbc

    Java连接达梦数据库驱动dm_jdbc: dm_jdbc\com.dameng.floader.jar dm_jdbc\com.dameng.impexp.jar dm_jdbc\Dm7Dictionary.jar dm_jdbc\Dm7JdbcDriver14.jar dm_jdbc\Dm7JdbcDriver15.jar dm_jdbc\Dm7JdbcDriver16....

    JDBC driver

    Sybase官方的JDBC驱动程序——jConnect 驱动类名:com.sybase.jdbc3.jdbc.SybDriver 连接URL:jdbc:sybase:Tds:host:port/database?property_name=value

    JDBC and ODBC

    1. **面向应用程序开发者的JDBC API**:这个层次主要是为开发者提供的,使得他们可以使用纯Java代码来完成数据库的连接和操作。 2. **底层的JDBC Driver API**:这一层则是针对数据库厂商设计的,目的是让它们能够为...

    JDBC连接字符串.doc

    每个数据库驱动都有其特定的URL格式,例如,`jdbc:mysql:`前缀表示连接到MySQL,而`jdbc:sqlserver:`表示连接到SQL Server。`jdbc:oracle:thin:`是Oracle数据库的“瘦”驱动,它不依赖本地Oracle客户端库。 在实际...

    JDBC Driver 驱动包

    **正文** 在IT行业中,数据库是数据存储与管理的...无论是在Web应用、桌面应用还是服务端应用中,只要涉及到与数据库的交互,都离不开JDBC。理解并熟练使用这些驱动,能有效提升开发效率,确保数据的正确存储和检索。

    常用的数据库JDBC URL格式

    - **JDBC URL**:`jdbc:microsoft:sqlserver://&lt;server_name&gt;:&lt;port&gt;` - 默认端口:1433 - 如果服务器使用默认端口,则 `&lt;port&gt;` 可以省略。 ##### 2. Microsoft SQL Server 2005 及以上版本 - **驱动程序包名**...

    是对之前讲的jdbc初级应用实例

    是对之前讲的jdbc初级应用,讲解一些实例

    ha-jdbc.rar

    在Java应用程序中,JDBC是访问和操作数据库的标准接口,而ha-jdbc则是对这一接口的扩展,它为开发者提供了更高级的功能,以应对分布式环境中的数据访问需求。 ha-jdbc的核心功能主要包括: 1. **故障切换**:当主...

    kingbaseV8 jdbc 驱动

    String url = "jdbc:kingbase://hostname:port/databasename"; String username = "your_username"; String password = "your_password"; try { Class.forName("com.kingbase.jdbc.Driver"); Connection conn = ...

    oracle所有版本jdbc的jar包

    JDBC(Java Database Connectivity)是Java平台中的一个标准API,用于在Java应用程序中连接和操作关系型数据库。它由一组接口和类组成,允许开发者编写数据库无关性的代码。 2. **Oracle JDBC驱动类型**: - ** ...

    jdbc-oracle-thinjdbc-oracle-thin

    在提供的部分内容中,“`jdbc:oracle:thin:@SFMWLHRTRLFQJQA:1521:orclsid`” 是一个典型的 JDBC-Oracle-Thin 连接字符串。下面我们将逐个部分进行解析: - **jdbc:**:表示使用 JDBC 协议。 - **oracle:**:指定...

    mysql jdbc driver

    String url = "jdbc:mysql://localhost:3306/mydatabase"; String user = "myusername"; String password = "mypassword"; Connection conn = DriverManager.getConnection(url, user, password); ``` 3. 执行...

    Hive Beeline连接报错:Could not open client transport with JDBC Uri: jdbc:hive2://hcmaster:10000/default

    在使用Hive的Beeline客户端进行连接时,可能会遇到错误提示"Could not open client transport with JDBC Uri: jdbc:hive2://hcmaster:10000/default"。这个错误通常意味着Beeline无法通过JDBC URL成功建立到Hive ...

    GBase JDBC 8.3.81.53.zip

    GBase JDBC 8.3.81.53 是一款专为GBase数据库设计的Java数据库连接器(Java Database Connectivity,简称JDBC),它允许Java应用程序通过标准的JDBC接口与GBase数据库进行通信和数据操作。GBase是南大通用数据系统...

    SQLite JDBC Driver

    当Java程序通过JDBC URL(如`jdbc:sqlite:/path/to/database`)建立连接时,驱动会加载必要的类和资源,创建与SQLite数据库的通信通道。 2. **使用步骤** - 添加依赖:将`sqlitejdbc.jar`文件添加到项目类路径中,...

    jdbc8.jar-oracle12

    "jdbc:oracle:thin:@//hostname:port/service_name", "username", "password"); ``` 其中,`hostname`是Oracle服务器地址,`port`是监听的TCP端口,`service_name`是Oracle服务名。 3. 执行SQL操作: 可以...

    常用 JDBC 驱动名字和 URL 列表

    jdbc:odbc:name 用 COM.ibm.db2.jdbc.net.DB2Driver 连接到 DB2 数据库 一个 DB2 URL 的示例: jdbc:db2://aServer.myCompany.com:50002/name 用 com.sybase.jdbc.SybDriver连接到 Sybase 数据库 一个 Sybase URL...

    jconn4 jdbc连接sybase驱动

    String url = "jdbc:sybase:TDS:hostname:port/databaseName"; String user = "yourUsername"; String password = "yourPassword"; Connection conn = DriverManager.getConnection(url, user, password); ``` ...

Global site tag (gtag.js) - Google Analytics