`
Allen_Oscar
  • 浏览: 24619 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java 读取postgresql数据库结构生成XML格式

    博客分类:
  • java
阅读更多

 

import java.sql.DatabaseMetaData;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
 
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.output.XMLOutputter;
 
 
publicclass getDBStructure {
 
    /**
     * @param args
     * @throws SQLException
     * @throws ClassNotFoundException
     */
    publicstaticvoid main(String[] args)throws SQLException, ClassNotFoundException {
       //TODO Auto-generated method stub
 
       DataBaseUtil db = new DataBaseUtil();
       DatabaseMetaData dbmt;
        
     
       dbmt = db.getConn().getMetaData();
        
       Statement st = db.getConn().createStatement();
        
       ResultSet tableSet = dbmt.getTables(null,"%", "%",new String[]{"TABLE"});
        
       Element root = new Element("POSTGIS_DB_XML"); 
        root.setAttribute("VERSION","1.0");
       Document Doc = new Document(root);
        Element elements = new Element("Tables"); 
        Element elementtable =null;
       while (tableSet.next()){
          
          
           String tableName = tableSet.getString(3);//获取数据库中表名称
            
           elementtable = new Element("table"); 
           elementtable.setAttribute("tableName",tableName );
          
           ResultSet columnSet = dbmt.getColumns(null,"%", tableName,"%");
           ResultSetMetaData rsmd = columnSet.getMetaData();
           intnumberOfColumns = rsmd.getColumnCount();//表中列个数
           Element elementcolumn =null;
          
            while(columnSet.next()){
 
              String columnName = columnSet.getString("COLUMN_NAME");//获取列名称
    String TYPE_NAME = columnSet.getString("TYPE_NAME");//列字段类型
               
              elementcolumn = new Element("column"); 
              elementcolumn.setAttribute("columnName", columnName);
              elementcolumn.setAttribute("TYPE_NAME", TYPE_NAME);
 
              elementtable.addContent(elementcolumn);
           }
            
            elements.addContent(elementtable);
       }
      
        root.addContent(elements);
        XMLOutputter XMLOut = new XMLOutputter(); 
        String xml = XMLOut.outputString(Doc);
        System.out.println(xml);
 
        
    }
}


在这里依赖一个类DatabaseMetaData,这个对象可以从数据库连接来获取。有了它万事大吉了,想知道什么问它即可:

 

//获取所有表
ResultSet tableSet = databaseMetaData.getTables(null, "%", "%", new String[]{"TABLE"});

//获取所有列

ResultSet columnSet = dbmt.getColumns(null,"%", tableName,"%");

//获取列个数

intnumberOfColumns = rsmd.getColumnCount();

 

下面就是如何从数据库读取表信息了。

引入 jdom2的相关JAR文件,数据库自己选择(这里我用的是PostgreSQL数据库)

//数据库连接

 

publicclass DataBaseUtil {
    privatestatic Connectionconn =null;
 
    @SuppressWarnings("unchecked")
    publicstatic Connection getConn()throws ClassNotFoundException, SQLException
    {
     
      if (conn==null)
      {
         Class.forName("org.postgresql.Driver");
        String url = "jdbc:postgresql://localhost:5432/postgis" ;
        conn = DriverManager.getConnection(url,"postgres" , "12345" );
 
      }
      returnconn;
    }
 
}
 



 

 

//生成XML格式

 

分享到:
评论

相关推荐

    用java编写的从数据库和XML中读写数据的应用程序

    Java提供了DOM(Document Object Model)、SAX(Simple API for XML)和StAX(Streaming API for XML)等API来解析和生成XML文档。DOM将整个XML文档加载到内存中,便于随机访问;SAX是事件驱动的,逐行读取XML,节省...

    SpringBoot + mybatis + postgresql数据库操作程序

    在本项目中,我们主要探讨的是如何利用SpringBoot框架结合Mybatis来操作PostgreSQL数据库,进行CRUD(创建、读取、更新、删除)等基本数据操作。下面将详细介绍涉及的关键知识点。 1. **SpringBoot**: SpringBoot...

    生成xml 文件 后并压缩

    本文将详细讲解如何生成XML文件以及如何将XML文件导入到数据库中,并介绍压缩XML文件的相关方法。 一、生成XML文件 1. **手动创建XML文件** 可以使用任何文本编辑器,如Notepad++或Visual Studio Code,创建一个...

    postgre自动生成代码

    而"Postgre自动生成代码"指的是利用特定的工具或框架,自动化生成与PostgreSQL数据库相关的Java代码,如MyBatis的XML配置、DAO层、Service层以及DTO对象,以减少手动编写这些重复性工作的时间和出错概率。...

    pgsql中使用mybatis生成实体类

    1. **安装和配置MyBatis Generator(MBG)**:MBG是MyBatis的一个插件,它可以自动根据数据库表结构生成Java实体类、Mapper接口和XML配置文件。首先,你需要在项目中添加MBG的依赖,通常是在Maven或Gradle的配置文件...

    postgresql-jdbc 源代码

    在Java编程中,PostgreSQL JDBC驱动是连接Java应用程序与PostgreSQL数据库的关键组件。这个源代码包包含了版本0.9.2的PostgreSQL JDBC驱动,它允许开发者通过JDBC API与PostgreSQL数据库进行交互。下面我们将详细...

    MyBatis Generator 逆向工程

    总结来说,MyBatis Generator逆向工程是自动化生成MyBatis相关代码的过程,通过配置文件连接到PostgreSQL数据库,解析表结构并生成对应的Java类。这个过程大大简化了数据库操作的编码工作,提升了开发效率。通过阅读...

    将两个XML文件部分内容读出写入EXCEL

    8. PostgreSQL实用实例参考:虽然这个问题主要涉及XML和Excel的处理,但如果你的数据存储在PostgreSQL数据库中,你可以先使用JDBC连接到数据库,执行查询,然后将结果转换为XML,再按照上述步骤写入Excel。...

    mybatis generator生成器

    MBG的配置文件是XML格式的,其中包含了数据库连接信息、生成的目标位置、生成的代码风格等设置。配置文件中的主要元素包括`context`、`table`等,`context`用于定义数据库连接,`table`则指定需要生成代码的表。 三...

    generator 自动生成代码工具

    `dbjars`可能包含的是数据库驱动JAR文件,如MySQL、Oracle或PostgreSQL的驱动,这些驱动使得generator工具能够连接到指定的数据库,读取表信息并生成代码。 总的来说,`generator 自动生成代码工具`是一个强大的...

    renren--代码生成框架,亲测可用,人品保证

    总的来说,renren代码生成框架是Java开发中提高生产力的有效工具,特别适用于快速原型开发或者需要频繁调整数据库结构的项目。它通过自动化代码生成,使得开发者可以更加专注于业务逻辑的设计和实现,降低了维护成本...

    最新省市县行政区域(含编码)XML和JSON数据格式(含测试入库代码)

    XML(Extensible Markup Language)和JSON(JavaScript Object Notation)是两种常见的数据交换格式,它们用来结构化地存储和传输数据。 XML是一种标记语言,通过标签来定义数据结构,便于人和机器阅读。在...

    mybatis-generator-core生成数据库表与对象sql映射

    "mysql-connector-java-5.1.45-bin.jar" 是 MySQL 数据库的驱动包,它使得 MBG 能够连接到 MySQL 数据库并获取表信息,以便进行代码生成。当然,如果你使用的是其他数据库,如 Oracle 或 PostgreSQL,你需要相应的...

    Java宿舍管理系统源码(包含数据库文件).zip

    3. **数据访问对象**(DAOs):如`StudentDAO.java`、`RoomDAO.java`,用于与数据库进行交互,执行CRUD(创建、读取、更新、删除)操作。 4. **服务层**(Services):如`StudentService.java`、`RoomService.java`...

    jpgAgent-一个PostgreSQL作业调度器

    2. **与PostgreSQL交互**:利用JDBC(Java Database Connectivity)接口,jpgAgent能够与PostgreSQL数据库进行通信,执行SQL命令和读取数据。 3. **事件驱动编程**:利用Java的多线程和事件处理机制,jpgAgent可以...

    java常用Jar包

    它可以读取、创建、修改XML文档,并且提供了XPath支持,是处理XML数据的强大工具,常与Spring框架结合使用。 4. **EasyMock** EasyMock是一个模拟测试框架,它允许开发者创建和控制对象的行为,以便进行单元测试。...

    mybatis反向生成工具(完整demo源代码,ui界面,非maven直接运行)mybatis-generator-core

    MyBatis Generator (MBG) 是一个强大的工具,它能够自动生成MyBatis相关的Java代码,包括实体类、Mapper接口和XML映射文件等。在标题提到的"mybatis反向生成工具(完整demo源代码,ui界面,非maven直接运行)mybatis...

    javahibernate

    1. 对象关系映射:通过XML映射文件或注解,将Java对象与数据库表关联,使得开发者可以像操作普通Java对象一样操作数据库记录。 2. 自动SQL生成:Hibernate自动根据对象操作生成对应的SQL语句,减少了手动编写SQL的...

    java开发常用jar集合.rar

    DOM解析器如`jaxp-dom`,可以将XML文档加载到内存中,形成一棵树形结构,方便对XML数据进行读取和修改。在Java中,`javax.xml.parsers.DocumentBuilderFactory`和`org.w3c.dom.Document`接口是进行DOM解析的核心类。...

    mybitas-generator

    MBG通过读取数据库元数据,如表结构、字段类型等,然后按照预设的模板生成对应的Java代码。它支持多种数据库,包括MySQL、Oracle、SQL Server等。生成的代码包括: 1. **实体类(Entity Class)**:代表数据库表中...

Global site tag (gtag.js) - Google Analytics