文档章节

JAVA 读取数据库字段并生成xml

 烽烽烽
发布于 2016/11/15 09:57
字数 399
阅读 42
收藏 0

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;

import org.jdom.Document;
import org.jdom.Element;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;

import com.epoint.ZtbCommon.ZtbCommonDao;
import com.epoint.core.grammar.Record;

/**
 * 读取数据库表信息生成xml文件
 *
 * @作者 lulf
 * @version [版本号, 2016年11月15日]
 */
public class Java2XML
{

    public static void main(String[] args) {
        //建立数据库链接(公司方法)
        ZtbCommonDao service = ZtbCommonDao.getInstance();
        try {
            Java2XML java2xml = new Java2XML();
            System.out.println("正在生成XML文件");
            String FilePath = "D://NEWXML.xml";
            String biaoduanguid = "a0e22cdb-4602-487e-a45d-d3aa1756c55b";
            java2xml.BuildXml(FilePath, biaoduanguid, service);
        }
        catch (Exception e) {
            e.getStackTrace();
            System.out.println("XML文件生成失败");
        }
        service.close();
        System.out.println("XML文件已生成");
    }

    public void BuildXml(String FilePath, String BiaoDuanGuid, ZtbCommonDao service)
            throws FileNotFoundException, IOException {
        String sql = "select * from pingbiao_kaibiaotoubiao where biaoduanguid='" + BiaoDuanGuid + "'";
        List<Record> tmp = service.findList(sql, Record.class);
        Java2XmlModel model = new Java2XmlModel();
        for (int i = 0; i < tmp.size(); i++) {
            model.add(tmp.get(i).getStr("danweiname"), tmp.get(i).getStr("danweiguid"));
        }
        // 创建根节点 并设置它的属性 ;
        Element root = new Element("danweis").setAttribute("count", tmp.size() + "");
        // 将根节点添加到文档中;
        Document Doc = new Document(root);
        for (int i = 0; i < tmp.size(); i++) {
            // 创建节点 danwei;
            Element elements = new Element("danwei");
            // 给 danwei 节点添加子节点并赋值;
            elements.addContent(new Element("danweiname").setText(model.getStu(i).getDanweiname()));
            elements.addContent(new Element("danweiguid").setText(model.getStu(i).getDanweiguid()));
            root.addContent(elements);
        }
        // 使xml文件 缩进效果
        Format format = Format.getPrettyFormat();
        XMLOutputter XMLOut = new XMLOutputter(format);
        XMLOut.output(Doc, new FileOutputStream(FilePath));
    }
}

class Java2XmlModel
{
    Java2XmlModel[] java2XmlModels;
    int count;
    private String danweiname;
    private String danweiguid;

    public String getDanweiname() {
        return danweiname;
    }

    public String getDanweiguid() {
        return danweiguid;
    }

    public void add(String danweiname, String danweiguid) {
        java2XmlModels[count] = new Java2XmlModel(danweiname, danweiguid);
        count++;
    }

    public Java2XmlModel() {
        java2XmlModels = new Java2XmlModel[100];
    }

    public Java2XmlModel(String danweiname, String danweiguid) {
        super();
        this.danweiname = danweiname;
        this.danweiguid = danweiguid;
    }

    public Java2XmlModel getStu(int index) {
        return java2XmlModels[index];
    }

    public int getCount() {
        return count;
    }
}

 

 

最终生成如下格式

<?xml version="1.0" encoding="UTF-8"?>
<danweis count="3">
  <danwei>
    <danweiname>阿里巴巴</danweiname>
    <danweiguid>7997ea17-c8e4-44fb-8a00-21dd866f354c</danweiguid>
  </danwei>
  <danwei>
    <danweiname>百度</danweiname>
    <danweiguid>7eddbe4d-d554-481a-acba-633ba1afbabb</danweiguid>
  </danwei>
  <danwei>
    <danweiname>腾讯</danweiname>
    <danweiguid>d543dc10-5650-4050-8158-0da2958d78cd</danweiguid>
  </danwei>
</danweis>

 

© 著作权归作者所有

烽烽烽

粉丝 0
博文 5
码字总数 1414
作品 0
无锡
程序员
私信 提问
使用 Ruby 开发代码生成器

在软件开发工程中,源代码生成工具是提升生产效率的利器。在我的工作中,曾经使用过 XLST、FreeMaker 等多种技术开发源代码生成器,最终我还是选择了脚本语言 Ruby。Ruby 以其简洁有趣的语法...

IBMdW
2012/07/21
1K
0
calvinwilliams/sqlaction

sqlaction - 自动生成JDBC代码的数据库持久层工具 1. 概述 2. 一个DEMO 2.1. 建表DDL 2.2. 新建JAVA项目 2.3. 在包目录中执行工具 2.4. 到目前为止,一行JAVA代码都没写,现在开始写应用代码...

calvinwilliams
04/18
0
0
自动生成 JDBC 代码的数据库持久层工具 - sqlaction

sqlaction - 自动生成JDBC代码的数据库持久层工具 1. 概述 厌烦了和()的冗余配置和繁琐使用,以及XML拷来拷去,写那么多Mapper要是直接用JDBC早就写完了,如果使用一个框架/工具比不使用而带...

calvinwilliams
04/18
3.1K
34
Apache CXF 整合 Map

在进行编码前有必要对一些基本的认识进行介绍,以便后面的讲解。 1、JAXB: JAXB能够使用Jackson对JAXB注解的支持实现(jackson-module-jaxb-annotations),既方便生成XML,也方便生成JSON,这...

yaokangjun
2014/08/21
1K
1
kettle demo 10 在Java代碼中读取文件内容插入到数据库

kettle调用java代码一步步扩展,本次在Java代码里读取本地文件,然后把数据插入到数据库 本地文件内容,book.txt 完整流程图 1、生成记录,设置1条 2、java代码,主要两部分,第一,方法上面...

wells杨
03/26
38
0

没有更多内容

加载失败,请刷新页面

加载更多

maven 环境隔离

解决问题 即 在 resource 文件夹下面 ,新增对应的资源配置文件夹,对应 开发,测试,生产的不同的配置内容 <resources> <resource> <directory>src/main/resources.${deplo......

之渊
今天
8
0
Linux创建yum仓库

第一步、搞定自己的光盘 #创建文件夹 mkdir -p /media/cdrom #挂载光盘 mount /dev/cdrom /media/cdrom #编辑配置文件使其永久生效 vim /etc/fstab 第二步,编辑yun源 vim /ect yum.repos.d...

究极小怪兽zzz
今天
6
0
jar 更新部分文件

C:\Program Files (x86)\Java\jdk1.8.0_102\bin>jar -hIllegal option: hUsage: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...Options: -c c......

圣洁之子
今天
9
0
OSChina 周六乱弹 —— 感谢女装红薯开办了这个网站

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @胖达panda:分享歌词: 我有一只小毛驴我从来也不骑,有一天我心血来潮骑着去赶集,我手里拿着小皮鞭我心里正得意,不知怎么哗啦啦,我摔了一...

小小编辑
今天
2.6K
13
DDD(四)

1,引言 软件开发者大多趋向于将关注点放在数据上,而不是领域上。这对于刚入门的DDD的新手而言也是如此。以我目前的思考方式,数据库依然占据主要的地位。开发一个功能,首先我就会考虑我会...

MrYuZixian
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部