`
lan13217
  • 浏览: 495864 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

jdbc 表 meta data

 
阅读更多
import java.io.IOException;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;

public class Jdbc {

    // 数据库连接地址
    private static final String url = "jdbc:mysql://localhost:3306/st";
    // 用户名密码
    private static final String user = "root";
    private static final String pwd = "";

    /***
     * 数据库查询
     * 
     * @throws ClassNotFoundException
     * @throws IOException
     */
    public static void query() throws ClassNotFoundException, IOException {
    Connection conn = null;
    java.sql.PreparedStatement pst = null;
    ResultSet re = null;
    /*
     * DBC提供了DatabaseMetaData来封装数据库连接对应的数据库信息,
     * 通过Connection的getMetaData方法来获取该对象。
     * DatabaseMetaData接口通常数据库驱动提供商完成实现,其作用是让用户了解数据库的底层信息。
     * 使用该接口可以了解数据库底层的实现,便于完成多个数据库的相互切换。
     */
    DatabaseMetaData metadata = null; 
    try {
        Class.forName("com.mysql.jdbc.Driver");
        conn = DriverManager.getConnection(url, user, pwd);

        metadata = conn.getMetaData();
        System.out.println("数据库已知的用户: " + metadata.getUserName());
        System.out.println("数据库的系统函数的逗号分隔列表: " + metadata.getSystemFunctions());
        System.out.println("数据库的时间和日期函数的逗号分隔列表: " + metadata.getTimeDateFunctions());
        System.out.println("数据库的字符串函数的逗号分隔列表: " + metadata.getStringFunctions());
        System.out.println("数据库供应商用于 'schema' 的首选术语: " + metadata.getSchemaTerm());
        System.out.println("数据库URL: " + metadata.getURL());
        System.out.println("是否允许只读:" + metadata.isReadOnly());
        System.out.println("数据库的产品名称:" + metadata.getDatabaseProductName());
        System.out.println("数据库的版本:" + metadata.getDatabaseProductVersion());
        System.out.println("驱动程序的名称:" + metadata.getDriverName());
        System.out.println("驱动程序的版本:" + metadata.getDriverVersion());
        System.out.println("驱动程序的版本:" + metadata.getTableTypes());
        System.out.println("............................................");
        pst = conn.prepareStatement("select * from company_basic");

        // 获取数据库列
        re = pst.executeQuery();
        // 数据库列名
        ResultSetMetaData data = re.getMetaData();
        // getColumnCount 获取表列个数
        for (int i = 1; i <= data.getColumnCount(); i++) {
        // 获取列表 index 从1开始、列名、列类型、列的数据长度
        System.out.println(data.getColumnName(i) + "\t" + data.getColumnTypeName(i) + "\t"
                + data.getColumnDisplaySize(i) + "\t" + data.getColumnClassName(i));
        }
        ResultSet resultSet = metadata.getTables(null, "%", "%", new String[] { "TABLE" });
        /*
         * while (resultSet.next()) { String
         * tableName=resultSet.getString("TABLE_NAME"); ResultSet rs =
         * metadata.getColumns(null, "%", tableName, "%");
         * System.out.println("表名:"+tableName+"\t\n表字段信息:");
         * while(rs.next()){
         * System.out.println("字段名:"+rs.getString("COLUMN_NAME")+"\t字段注释:"+
         * rs.getString("REMARKS")+"\t字段数据类型:"+rs.getString("TYPE_NAME")); }
         * }
         */
        ResultSet rs = metadata.getColumns(null, "%", "company_basic", "%");
        System.out.println("表名:" + "company_basic" + "\t\n表字段信息:");
        while (rs.next()) {
        System.out.println("字段名:" + rs.getString("COLUMN_NAME") + "\t字段注释:" + rs.getString("REMARKS")
                + "\t字段数据类型:" + rs.getString("TYPE_NAME"));
        }

    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        closeConnection(conn, pst, re);
    }
    }

    /**
     * 关闭数据库链接
     * 
     * @param conn
     * @param pst
     * @param re
     */
    public static void closeConnection(Connection conn, PreparedStatement pst, ResultSet re) {

    if (conn != null)
        try {
        conn.close();
        } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        }
    if (pst != null)
        try {
        pst.close();
        } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        }
    if (re != null)
        try {
        re.close();
        } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        }
    }

    public static void main(String[] args) throws IOException {
    try {
        query();
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    }
}
分享到:
评论

相关推荐

    jdbc实例教程

    元数据 Meta Data 是元数据的核心组件之一,提供了数据库的 schema 信息、表信息、字段信息等。 数据库的元数据 数据库的元数据是元数据的核心组件之一,提供了数据库的 schema 信息、表信息、字段信息等。 结果...

    sqljdbc4的源码包

    此外,如果SQLJDBC4驱动遵循Java的Service Provider Interface (SPI)机制,那么在META-INF下可能还会找到services子目录,其中的文件会列出该驱动作为JDBC驱动提供商的声明。 总的来说,通过分析sqljdbc4的源码,...

    jdbc学习笔记完美版

    元数据(Meta-data) JDBC允许我们获取关于数据库、表、列等的信息,例如表的结构、列的数据类型等,这些信息可以通过`DatabaseMetaData`接口获取。 ### 4. 异常处理 在JDBC编程中,常见的异常包括`SQLException`...

    java封装jdbc的操作代码

    `META-INF`目录通常包含项目元数据,`com`是Java源代码包,可能包含了封装的JDBC操作类。`lib`目录可能包含JDBC驱动和其他依赖库。 6. **最佳实践** 在实际开发中,可以进一步优化封装,例如使用DAO(Data Access ...

    JDBC学习.docx

    JDBC是构建在Java平台之上的数据库访问基石,许多其他的持久层技术,如JDO(Java Data Object)、Hibernate和MyBatis等,都是基于JDBC进行了更高级别的封装。 **JDBC主要知识点:** 1. **JDBC API**: JDBC API包括...

    JavaWeb:jdbc(详细讲解).pdf

    jdbc(Java Data Base Connectivity)是一种Java API,用于连接和操作关系型数据库。jdbc 的本质是官方定义的一套操作所有关系型数据库的规则,即接口(API),各个数据库厂商去实现这个接口,提供数据库驱动 jar 包...

    尚硅谷-柴林燕-JDBC1

    JDBC作为Java数据库访问的基础,为上层的数据库访问技术如JDO(Java Data Object)和ORM(Object-Relational Mapping)工具,如Hibernate和Mybatis,提供了底层支持。通过JDBC,开发者可以编写与数据库无关的代码,...

    详解Spring Boot中整合Sharding-JDBC读写分离示例

    sharding.jdbc.config.masterslave.master-data-source-name=ds_master sharding.jdbc.config.masterslave.slave-data-source-names=ds_slave ``` 在上面的配置中,我们定义了两个数据源:ds_master 和 ds_slave,...

    Tomcat5配置MySQL JDBC数据库连接池

    - **Data Source URL**:例如`jdbc:mysql://192.168.0.16/SUBRDB`,其中`192.168.0.16`是MySQL服务器的IP地址,`SUBRDB`是数据库名。 - **JDBC Driver Class**:例如`org.gjt.mm.mysql.Driver`,这是MySQL的JDBC...

    jsp+jdbc实现连接数据库的方法.docx

    ### JSP+JDBC 实现连接数据库的...在实际开发中,为了提高安全性和可维护性,通常会采用更高级的技术和框架,例如Spring框架中的Spring Data JPA等。此外,对于敏感信息的处理,还需要采取加密等措施来保障数据的安全。

    SpringBoot利用Spring-Data-Jpa操作数据库

    这个DEMO项目中的`META-INF`和`WEB-INF`目录通常是Web应用的标准结构,`META-INF`包含应用元数据,如MANIFEST.MF文件,`WEB-INF`则包含了Web应用的配置文件和库文件。在Spring Boot应用中,这些目录的使用可能并不...

    java代码将mysql表数据导入HBase表

    假设我们创建一个与`users`表对应的HBase表,名为`user_data`,包含两个列族:`info`和`meta`,分别对应MySQL中的`name`和`email`字段。HBase创建表的Java代码可能如下: ```java import org.apache.hadoop.hbase....

    Java JDBC资源:连接BDD和JDBC,要求LID和LMD,注入SQL,ResultSet,元数据

    在Java应用中,JDBC是连接业务逻辑(BDD,Business Data Logic)和数据库之间的重要桥梁。本资源包将详细介绍如何利用JDBC进行数据库操作,包括连接、SQL注入、处理结果集以及获取元数据等关键步骤。 首先,要建立...

    XPages访问关系型数据库的方法.pdf

    - 修改`META-INF/MANIFEST.MF`文件,将JDBC驱动Jar文件加入插件的classpath中。 - 导出JDBC驱动程序所需的类名,并添加依赖的其他插件。 - 例如,对于Derby数据库,导出`com.ibm.xsp.extlib.relational.derby`等...

    Apusic服务器解决数据源的资源引用

    &lt;data-source id="jdbc/real" class="org.apache.commons.dbcp.BasicDataSource"&gt; &lt;property name="driverClassName"&gt;com.mysql.jdbc.Driver&lt;/property&gt; &lt;property name="url"&gt;jdbc:mysql://localhost:3306/test ...

    jboss6 sqlserver 2000 数据库连接配置

    3. **配置JNDI数据源**:在`JBOSS_HOME/server/default/deploy/jboss-service.xml`或应用特定的配置文件(如`META-INF/jboss-service.xml`)中,定义JNDI数据源。例如: ```xml &lt;datasources&gt; &lt;jndi-name&gt;java:...

    TomCat 添加 oracle 数据源

    为了实现高效且可扩展的数据库连接管理,最佳实践通常建议使用J2EE数据源(Data Source)来提供连接池服务。然而,在配置数据源并将其与应用程序关联起来的过程中,往往面临着繁琐且易错的操作,尤其是在不同Web...

    spring-jpa(hibernate实现)环境搭建

    `META-INF`目录通常是Java应用中的元数据目录,包含如MANIFEST.MF文件,用于描述JAR包的信息,但在这个场景下未提供具体文件,所以无法给出更多细节。在实际项目中,它可能包含Hibernate的映射文件或者自定义的实体...

    solr7.4配置tomcat8.5,可连接mysql8.0.11,集成ik分词器

    在`my_core/conf`下创建`data-config.xml`,定义数据源和要索引的表: ```xml &lt;dataConfig&gt; &lt;dataSource type="JdbcDataSource" name="jdbc:mysql"/&gt; &lt;entity name="your_table" dataSource="jdbc:mysql" query...

    dz_model_1.0.src.zip

    通过JDBC,工具能够获取数据库表的元数据,包括表名、字段名、字段类型等,从而构建出Entity类的字段和DAO接口的方法。 Java Bean(Entity)是Java中一种设计模式,用于封装业务数据。在本工具中,每个数据库表通常...

Global site tag (gtag.js) - Google Analytics