`
gshxsyq
  • 浏览: 19990 次
社区版块
存档分类
最新评论

通过JDBC获得表结构信息

阅读更多

通过JDBC取得数据库的连接,然后关键性的代码如下:

DatabaseMetaData databaseMetaData = connection.getMetaData();
resultSet =databaseMetaData.getColumns(null,null,"tableName".toUpperCase(),"%");
注意:连接数据库的时候设置remarksReporting为true。

 

import java.sql.Connection;   
import java.sql.DatabaseMetaData;   
import java.sql.DriverManager;   
import java.sql.PreparedStatement;   
import java.sql.ResultSet;   
import java.sql.SQLException;   
import java.util.Properties;   
  
import org.junit.Test;   
  
/**  
 * @description:  
 * @author syq  
 * @2012-8-23  
 */  
public class ExprotDBInfo {   
  
    @Test  
    public void testExprotDBInfo() {   
        Connection connection = null;   
        PreparedStatement statement = null;   
        ResultSet resultSet = null;   
  
        try {   
            Class.forName("oracle.jdbc.driver.OracleDriver");   
  
            Properties props = new Properties();   
            props.put("user", "orcl");   
            props.put("password", "orcl");   
            props.put("remarksReporting", "true");   
               
            /*connection = DriverManager.getConnection(  
                    "jdbc:oracle:thin:@localhost:1521:orcl", "zjpmsoa",  
                    "zjpmsoa");  
            StringBuffer sql = new StringBuffer();
            //通过查询的方法获得表结构信息,此种方法不够灵活而且不通用,只适用于oracle  
            sql.append("SELECT a.column_name,b.data_type||'('|| case b.data_type when 'NUMBER' then b.data_precision when 'VARCHAR2' then b.char_length end||','||b.data_scale||')' AS type,a.comments"  
                    + " FROM user_col_comments a , user_tab_columns b"  
                    + " WHERE a.table_name= b.table_name AND a.column_name =b.column_name AND a.table_name  =upper(?)"  
                    + " ORDER BY a.column_name");  
            statement = connection.prepareStatement(sql.toString());  
            statement.setString(1, "kd_vehicle_data");  
            resultSet = statement.executeQuery();*/  
            connection = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", props);   
            DatabaseMetaData databaseMetaData = connection.getMetaData();
            //获得指定tableName对应的列
            resultSet =databaseMetaData.getColumns(null,null,"tableName".toUpperCase(),"%");   
            /*ResultSetMetaData resultSetMetaData = resultSet.getMetaData();  
            for(int i =0;i<resultSetMetaData.getColumnCount();i++){  
                System.out.println(resultSetMetaData.getColumnTypeName(i+1)+"\t"+resultSetMetaData.getColumnLabel(i+1));  
            }*/  
            StringBuffer result = new StringBuffer();   
            while(resultSet.next()){   
                 result.append(resultSet.getString("COLUMN_NAME")).append("\t")   
                 .append(resultSet.getString("TYPE_NAME")).append("\t")   
                 .append(resultSet.getString("IS_NULLABLE")).append("\t")   
                 .append(resultSet.getString("REMARKS")).append("\t")   
                 .append("\n");   
            }   
            System.out.println(result.toString());   
               
        } catch (ClassNotFoundException e) {   
            // TODO Auto-generated catch block   
            e.printStackTrace();   
        } catch (SQLException e) {   
            // TODO Auto-generated catch block   
            e.printStackTrace();   
  
        } finally {   
            if (null != connection) {   
                try {   
                    connection.close();   
                } catch (SQLException e1) {   
                    // TODO Auto-generated catch block   
                    e1.printStackTrace();   
                }   
            }   
        }   
    }   
  
}  

 

 

分享到:
评论

相关推荐

    jdbc 读取表结构

    获取表的结构,无论是任何数据库,只要把驱动包加进去就可以了。

    java 读取表结构 mysql

    java 读取表结构 mysql 数据库名: 表名: 字段描述 字段名 数据类型 是否可为空 自增 主键

    JDBC 3.0数据库开发与设计

    3.3.4 获取表中各列的信息 3.3.5 获取索引的信息 3.3.6 获取数据库中各种信息的实例 3.4 Statement对象 3.4.1 Statement对象使用基础 3.4.2 获取所有记录 3.4.3 获取指定记录 3.5 修改数据库表 3.5.1 修改...

    基于SpringJDBC的轻量级ORM框架sborm.zip

    4、基于对象指定查询的字段,大部分时候可以忘掉表结构进行业务开发; 5、支持简单的数据库路由,读写分离(半自动,需要指定取writer还是reader,默认规则reader采用随机的方式,当然也可以手动指定); 6、...

    基于swing和mysql的JDBC系统

    JDBC(Java Database Connectivity):JDBC是Java提供的用于数据库访问的API,通过JDBC可以与各种数据库进行连接和交互。在该课程管理系统中,JDBC用于与MySQL数据库进行通信,包括建立连接、执行SQL语句、获取查询...

    JDBC.zip_JDBC实验_Java自定义表单

    2)设计数据库及表结构,表中保存信息统计表中的信息,在mysql或其它数据库中创建数据库和表。 3)定义一个Servlet类并进行部署。该servlet的功能是负责获取表单中填写的数据并保存到步骤2)所创建的数据库表中,若...

    JSP+SQL+JDBC房屋租赁管理信息系统Java课程设计

    在Windows xp下使用JSP+SQL开发,采用C/S结构,使用JDBC连接数据库。 本系统的功能有:房屋出租登记输入处理,房屋出售登记输入处理,房屋登记表修改处理(有输入、取消、确认、修改、删除等功能),房屋查询处理...

    JDBCUtils.java

    jdbc工具类,其中包含的方法有:数据库动态获取驱动,动态切换mysql与oracle,获取链接,resultSet转list,jdbc读取数据库表结构信息,判断数据库是否存在该表等内容

    基于java swing和mysql的学生管理系统

    JDBC(Java Database Connectivity):JDBC是Java提供的用于数据库访问的API,通过JDBC可以与各种数据库进行连接和交互。在该课程管理系统中,JDBC用于与MySQL数据库进行通信,包括建立连接、执行SQL语句、获取查询...

    Java图书馆管理系统附全代码课程设计报告完整版.docx

    五、表结构定义(使用表格说明) Java图书馆管理系统附全代码课程设计报告完整版全文共205页,当前为第7页。 Java图书馆管理系统附全代码课程设计报告 整版全文共205页,当前为第8页。Java图书馆管理系统附全代码...

    Java学习指南(8) MySQL数据库与JDBC框架

    * 数据库的动态访问:获取数据库和表的结构,根据表的结构自动生成POJO 三、课程体系 〖Java学习指南系列〗:包含入门与进阶语法,Swing桌面开发,安卓开发,JavaFX开发,网络通信Socket,数据结构与算法等课程。 ...

    Java高级程序设计实战教程第八章-Java数据库编程.pptx

    Java高级程序设计 第8章 Java数据库编程 8.1 应用... 8.3 任务实施 任务一 编写程序实现对图书信息表的增删改查操作 任务需求: 现有图书信息表bookinfo(序号,图书编号,图书名称,作者,出版社,单价,出版日期,I

    java程序是怎么操作数据库的,可以以常用据库为例,求详细解答,最好能举例。

    JDBC技术事实上是一种能通过JAVA语言访问任何结构化数据库的应用程序接口(API)(Sun这样说的,我也不知道是不是真的),而且现在的JDBC 3.0据Sun说也能访问Execel等电子表格程序! JDBC对于数据库的访问有四种方式,...

    Java数据库编程宝典2

    第12章 通过servlet和JSP使用JDBC DataSource 12.1 使用JDBC DataSource 12.2 使用servlet创建动态Web页面 12.2.1 创建一个简单的servlet 12.3 创建和配置Lo9in servlet 12.3.1 实现会员Web站点 12.3.2 创建...

    Java数据库编程宝典4

    第12章 通过servlet和JSP使用JDBC DataSource 12.1 使用JDBC DataSource 12.2 使用servlet创建动态Web页面 12.2.1 创建一个简单的servlet 12.3 创建和配置Lo9in servlet 12.3.1 实现会员Web站点 12.3.2 创建...

    Java数据库编程宝典1

    第12章 通过servlet和JSP使用JDBC DataSource 12.1 使用JDBC DataSource 12.2 使用servlet创建动态Web页面 12.2.1 创建一个简单的servlet 12.3 创建和配置Lo9in servlet 12.3.1 实现会员Web站点 12.3.2 创建...

    Java数据库编程宝典3

    第12章 通过servlet和JSP使用JDBC DataSource 12.1 使用JDBC DataSource 12.2 使用servlet创建动态Web页面 12.2.1 创建一个简单的servlet 12.3 创建和配置Lo9in servlet 12.3.1 实现会员Web站点 12.3.2 创建...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例151 获得Class对象表示实体的名称 197 实例152 查看类的声明 198 实例153 查看类的成员 199 实例154 按继承层次对类排序 201 实例155 查看内部类信息 202 7.2 反射的进阶 203 实例156 动态设置类的私有域 203 ...

Global site tag (gtag.js) - Google Analytics