`

jdbc resultsetMeteData 学习

    博客分类:
  • JAVA
阅读更多
应需要对JDBC对数据库的元数据的操作学习了一下。

对JDBC来说元数据有两种

1:针对数据库的元数据。

2:针对一个ResultSet的元数据。

分别对这两种做介绍。

一:针对数据库的元数据。JDBC是通过一个Connection.getMeteData()来取得一个DataBaseMeteData类型的数据。DataBaseMeteData有很多方法可以用来获取这个Connection所连接的数据库的信息。具体的主要函数如下

getCatalogs();

返回数据库的目录信息。

getURL();

获取连接的数据库的URL地址。

getDriverName();

获取连接的数据库的驱动程序。

getColumns(catalog, schema, tableNames,columnNames)

返回指定表名的表的所有列名。

catalog, schema通常为NULL。

getTables(catalog, schema, tablemask, types[]);

返回符合条件的表的描述。其参数含义如下∶

catalog 表所在的目录。对于JDBC-ODBC数据库,可置为NULL。这个所谓的目录实际上就是数据库所在文件系统的绝对路径。

schema 数据库的数据模式,通常置为NULL。

tablemask 对要获取的表的描述。如果要取得所有表名。可使用通配符“%”。

types[] 这是一个字符串数组,描述要获取的表的类型。因为大型数据库中通常含有许多内部表,与用户无关。如果它为NULL,将得到所有的表。如果是一个单元素的数组含有字符串"TABLES",只得到与用户有关的表。

二:针对ResultSet的元数据。JDBC是通过一个ResultSet.getResultSetMeteData()来取得一个ResultSetMeteData类型的数据。ResultsetMeteData有很多方法可以用来获取这个ResultSet所包含的查询的信息。具体的主要函数如下:

getColumnCount();

返回结果集中记录的列数。

getColumnName(int);

返回指定号数的字段名。

getColumnType(int);

返回指定号数的字段类型。

三:测试程序

import java.sql.*;

public class Conn
{

    private String driver;
    private String uri;
    private String uid;
    private String pass;
    private String path;
    private Connection conn;
    private Statement stmt;
    private ResultSet rs;

    public Conn(String s)
    {
        driver = "sun.jdbc.odbc.JdbcOdbcDriver";
        uri = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};dbq=";
        uid = "";
        pass = "";
        path = "";
        conn = null;
        stmt = null;
        rs = null;
        path = s;
        uri = uri + path;
    }

    public Conn(String s, String s1, String s2)
    {
        driver = "sun.jdbc.odbc.JdbcOdbcDriver";
        uri = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};dbq=";
        uid = "";
        pass = "";
        path = "";
        conn = null;
        stmt = null;
        rs = null;
        path = s;
        uid = s1;
        pass = s2;
        uri = uri + s;
    }

    public Connection getConn()
    {
        if(conn == null)
            try
            {
                Class.forName(driver);
                conn = DriverManager.getConnection(uri, uid, pass);
            }
            catch(Exception exception)
            {
                System.out.println(exception);
            }
        return conn;
    }

    public Statement getStmt()
    {
        try
        {
            if(stmt != null)
                stmt.close();
            conn = getConn();
            stmt = conn.createStatement();
        }
        catch(Exception exception)
        {
            System.out.println(exception);
        }
        return stmt;
    }

    public ResultSet getResultSet(String s)
    {
        try
        {
            if(rs != null)
                rs.close();
            conn = getConn();
            stmt = conn.createStatement();
            rs = stmt.executeQuery(s);
        }
        catch(Exception exception)
        {
            System.out.println(exception);
        }
        return rs;
    }

    public void executeSql(String s)
    {
        try
        {
            conn = getConn();
            stmt = conn.createStatement();
            stmt.executeUpdate(s);
            stmt.close();
        }
        catch(Exception exception)
        {
            System.out.println(exception);
        }
    }

    public void close()
    {
        try
        {
            if(rs != null)
                rs.close();
            if(stmt != null)
                stmt.close();
            if(conn != null)
                conn.close();
        }
        catch(Exception exception)
        {
            System.out.println(exception);
        }
    }

    public static void main(String args[])
    {
        Conn conn = new Conn("E:\\sms.mdb", " ", "access");

        try
        {
            ResultSet rs = null;
            DatabaseMetaData databasemd = null;
            ResultSetMetaData rsmd = null;
            String [] type = new String[1];
            type[0] = "TABLES";
            databasemd = conn.getConn().getMetaData();
            System.out.println("---------------------输出数据库的表信息-------------");
            rs =  databasemd.getTables(null,null,"inbox7",null);
//            rs = databasemd.getColumns(null,null,"%","%");
            if (rs == null) {
                System.out.println("the databasemete is null!");
            }
            String table_name = "";
            while(rs.next())
            {
                table_name = rs.getString("TABLE_NAME");
                if(table_name.indexOf("MS") == -1)
                {
                    System.out.println(table_name);
                }
            }
            rs.close();
            System.out.println("---------------------输出具体表信息---------------");
            String sql = "select * from "+table_name;

            rs = conn.getResultSet(sql);
            while(rs.next())
            {
                System.out.println(rs.getString(3));
            }

        }
        catch(Exception exception)
        {
            System.out.print(exception);
        }
        finally
        {
            conn.close();
        }
    }
}

分享到:
评论

相关推荐

    JDBC学习笔记--JDBC学习笔记

    JDBC学习笔记 JDBC(Java DataBase Connectivity)是一种Java程序语言访问数据库的标准接口。它使得Java程序可以连接到各种不同的数据库管理系统,例如Oracle、SQL Server、MySQL、DB2、Sybase等。 JDBC的概念 ...

    JDBC学习资料

    详解JDBC,如何与数据库交互数据。 1 What is JDBC? 2 The most important hiberarchy of JDBC interface. 3 The type of JDBC. 4 The step of developping a JDBC app. 5 How to handle resultset? 6 Statement ****...

    JDBC Hibernate学习笔记

    ### JDBC与Hibernate学习笔记 #### 一、JDBC概述 **1.1 ODBC与JDBC的区别** - **ODBC(Open Database Connectivity)**: 开放式数据库连接是一种开放标准的应用程序接口(API),用于实现数据库应用程序与不同...

    java(jdbc)学习

    ### Java JDBC 学习知识点详述 #### 一、JDBC 概念及与应用程序的关系 JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,它为数据库开发人员提供了一种标准的API来访问多种类型的数据库,无论...

    jdbc学习笔记完美版

    JDBC(Java Database Connectivity)是Java...通过学习JDBC,开发者能够有效地在Java应用程序中集成数据库功能,实现数据的增删改查以及与存储过程的交互。理解和掌握这些知识对于成为一名合格的Java开发人员至关重要。

    JDBC(学习课件)

    在实际开发中,学习JDBC通常包括以下步骤: 1. 加载驱动:通过`Class.forName()`方法加载数据库驱动。 2. 建立连接:使用`DriverManager.getConnection()`方法,传入数据库URL、用户名和密码来创建连接。 3. 创建...

    非常好的JDBC学习文档

    本学习文档将带你深入理解JDBC的核心概念,提升你在数据库操作方面的技能。 首先,了解**JDBC驱动类型**是非常基础的。JDBC驱动分为四种类型:Type 1、Type 2、Type 3和Type 4。Type 1是纯Java驱动,依赖于ODBC桥;...

    基于Java的atguigu-jdbcJDBC连接学习设计源码

    atguigu-jdbc是一个基于Java开发的JDBC连接学习项目,包含39个文件,其中包括15个XML文件、15个Java源文件、5个JAR文件、2个Git忽略文件、1个Iml文件和1个Properties文件。该项目为用户提供了一个全面、高效的JDBC...

    详细标准的jdbc学习资料

    通过本套学习资料,你可以系统地了解和掌握JDBC的使用,包括建立连接、执行SQL、处理结果、事务处理、批处理和优化技巧等,为实际的数据库操作打下坚实的基础。资料分为四个部分,分别从初级到高级逐步深入,从day1...

    达内jdbc学习笔记

    本笔记主要涵盖了达内在教授JDBC技术时的重点内容,旨在帮助学习者掌握如何使用Java进行数据库操作。 首先,我们来了解一下**数据库连接的基本概念**。在JDBC中,与数据库建立连接的过程通常包括以下步骤: 1. **...

    jdbc学习手册

    JDBC学习手册通常包含以下几个核心知识点: 1. **JDBC API**: JDBC API包括一系列的Java类和接口,如`java.sql.DriverManager`、`java.sql.Connection`、`java.sql.Statement`、`java.sql.PreparedStatement`和`...

    JAVA的JDBC学习遇到的问题1

    这篇博客"JAVA的JDBC学习遇到的问题1"可能是作者在深入学习JDBC时遇到的一些常见挑战和解决方法的记录。虽然没有具体的描述内容,我们可以根据一般的学习路径来探讨JDBC相关的知识点。 1. **JDBC基本概念**:首先,...

    jdbc 学习 笔记 代码例子1

    jdbc学习用笔记和代码例子jdbc学习用笔记和代码例子jdbc学习用笔记和代码例子

    JDBC学习笔记总结,可以看看

    "JDBC学习笔记总结" JDBC(Java Database Connectivity)是一种Java API,用于连接和操作关系数据库。下面是JDBC学习笔记的总结: 连接到数据库的方法 1. ODBC(Open Database Connectivity):是一个以C语言为...

    JDBC的学习笔记.md

    数据库连接JDBC

    JDBC学习笔记(笔记+包含详细注释的代码)

    **JDBC学习笔记** Java Database Connectivity (JDBC) 是Java平台中用于与各种数据库进行交互的一组接口和类。它是Java SE的一部分,允许Java应用程序连接到数据库,执行SQL语句,处理结果集,并进行事务管理。这篇...

    JDBC简明学习教程

    **JDBC简明学习教程** Java Database Connectivity (JDBC) 是Java编程语言中用于与数据库交互的一组接口和类。它是Java平台的标准部分,由Java SE和Java EE提供支持,使得开发人员能够编写数据库应用程序,无论是...

    JDBC学习实例代码

    **JDBC学习实例代码**是Java开发者学习数据库交互的基础教程,它通过实例代码展示了如何使用Java Database Connectivity(JDBC)接口来操作数据库。在Java编程中,JDBC是一组用于在Java应用程序和各种类型的数据库...

Global site tag (gtag.js) - Google Analytics