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

java读取ORACLE数据库表字段信息以及注释信息

阅读更多
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/***
 *  2014-07-21日:
 *  oracle数据库, 表结构查询 ,字段信息查询,字段注释查询 
 *  表字段查询 all_tab_columns
 *  表字段注释查询 all_col_comments
 * 
 */
public class OracleTable {
    private static final String DRIVER_CLASS = "oracle.jdbc.driver.OracleDriver";
    private static final String DATABASE_URL = "jdbc:oracle:thin:@192.168.1.10:1521:orcl";
    private static final String DATABASE_USER = "dev";
    private static final String DATABASE_PASSWORD = "dev";
    private static Connection con = null;
     
    public static Connection getConnection() {
        try {
            Class.forName(DRIVER_CLASS);
            con=DriverManager.getConnection(DATABASE_URL,DATABASE_USER,DATABASE_PASSWORD);
            return con;
        } catch (Exception ex) {
            System.out.println("2:"+ex.getMessage());
        }
        return con;
    }
     
    /***
     * 打印test
     * @throws SQLException
     */
    public static void sysoutStrTablePdmCloumns(String Table,String Owner) throws SQLException{
        getConnection();
         
        List<HashMap<String,String>> columns = new ArrayList<HashMap<String,String>>();
         
        try{
            Statement stmt = con.createStatement();
             
            String sql=
             "select "+
             "         comments as \"Name\","+
             "         a.column_name \"Code\","+
             "         a.DATA_TYPE as \"DataType\","+
             "         b.comments as \"Comment\","+
             "         decode(c.column_name,null,'FALSE','TRUE') as \"Primary\","+
             "         decode(a.NULLABLE,'N','TRUE','Y','FALSE','') as \"Mandatory\","+
             "         '' \"sequence\""+
             "   from "+
             "       all_tab_columns a, "+
             "       all_col_comments b,"+
             "       ("+
             "        select a.constraint_name, a.column_name"+
             "          from user_cons_columns a, user_constraints b"+
             "         where a.constraint_name = b.constraint_name"+
             "               and b.constraint_type = 'P'"+
             "               and a.table_name = '"+Table+"'"+
             "       ) c"+
             "   where "+
             "     a.Table_Name=b.table_Name "+
             "     and a.column_name=b.column_name"+
             "     and a.Table_Name='"+Table+"'"+
             "     and a.owner=b.owner "+
             "     and a.owner='"+Owner+"'"+
             "     and a.COLUMN_NAME = c.column_name(+)" +
             "  order by a.COLUMN_ID";
            System.out.println(sql);
            ResultSet rs = stmt.executeQuery(sql);
            while (rs.next()){
                HashMap<String,String> map = new HashMap<String,String>();
                map.put("Name", rs.getString("Name"));
                map.put("Code", rs.getString("Code"));
                map.put("DataType", rs.getString("DataType"));
                map.put("Comment", rs.getString("Comment"));
                map.put("Primary", rs.getString("Primary"));
                map.put("Mandatory", rs.getString("Mandatory"));
                columns.add(map);
            }
        }
        catch (SQLException e){
            e.printStackTrace();
        }finally{
            con.close();
        }
    }
    public static void main(String[] args) throws SQLException{
         
        sysoutStrTablePdmCloumns("CT_INFO_CONTRACT_BORROW","DEV");
         
         
    }
     
}

 

分享到:
评论

相关推荐

    mybatis-generator自动生成字段注释的maven项目,执行StartUp.java即可

    在这个项目中,重点是MBG能生成包含字段注释的Java模型类,这对于理解数据库表字段的含义非常有帮助。 在`pom.xml`文件中,会配置MBG插件的相关参数,包括数据库连接信息(如URL、用户名、密码)、目标生成目录、...

    oracle实体类生成工具.zip

    实体类通常包含与数据库表字段相对应的属性,并且包含getter和setter方法,有时还会包括一些业务逻辑。使用这款工具,开发者无需手动编写这些属性和方法,只需几步简单的操作,即可生成规范的实体类代码,符合...

    实体代码生成器(多数据库支持)

    实体类是业务层的对象,它们通常代表数据库中的表或视图,包含了与数据库表字段一一对应的属性。使用实体代码生成器,开发者可以快速创建出这些类,节省大量的编码时间,并减少人为错误。 1. **多数据库支持**:此...

    mybatis逆向生成工具(oracle).rar

    3. 实体类(Entity):代表数据库表中的记录,通常包含与表字段对应的属性。 使用MyBatis逆向生成工具时,你需要按照以下步骤操作: 1. 下载并解压“mybatis逆向生成工具”压缩包。 2. 配置工具所需的数据库连接...

    mybatis-generator.zip

    在这个"mybatis-generator.zip"压缩包中,我们可以看到它主要针对Oracle数据库,并且能为生成的实体类添加基于表字段Comment的注释。 首先,让我们来了解一下MyBatis Generator的基本概念和工作原理。MyBatis ...

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

    介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作典型应用和数据库应用。全书分5篇24章,共计603个实例和603个经验技巧。每个实例都...

    Mybatis 自动生成代码

    - Java实体类:每个表对应一个实体类,属性与数据库表字段一一对应,提供了getter和setter方法,便于Java编程操作。 - Mapper接口:定义了SQL查询和更新的方法,每个方法对应XML文件中的一个SQL语句。 - Mapper ...

    mybatis反向生成工具

    1. **实体类(Entity Class)**:这些类对应数据库中的表,包含表字段的属性以及getter和setter方法,用于数据的封装。 2. **Mapper接口(Mapper Interface)**:每个接口对应一个数据库表,包含了CRUD(创建、读取...

    mybatis模板生成工具

    在 MBG 中,用户可以定制化生成的代码风格,包括表字段的驼峰命名转换、注释添加等。mybatis-generator-core-2.0.5 是 MBG 的一个版本,它包含了核心的生成逻辑和依赖库。 **核心功能:** 1. **自动创建 Entity 类...

    一个自动生成实体类和SQL语句的工具 1.1版

    "实体"在这里是指数据库中的表在程序代码中的表示,通常是一个类,包含了与表字段相对应的属性。"SQL查询"是指用于操作数据库的语言,包括选择(SELECT)、插入(INSERT)、更新(UPDATE)、删除(DELETE)等操作。...

Global site tag (gtag.js) - Google Analytics