用jdom将数据库中的数据表转换为xml的纯java代码
Excel与XML相互转化的Java实现
,
引言
%&’() 作为 *+’,-.-/0 1//+’( 的 一 部 分 2 已 经 被 广 泛 应 用 于 各 行 各 业 的 数 据 统 计2办 公 电 子 表 格 文 档 处 理 等 2从 而 倍 受 世 界 广 泛 3+45-6. 用户的青睐 2 可以说已成为企业所不可缺 少 的 工 具 ! 而 7*8 作为新一代的网页发布语言 2 推动着 3(9 不断地向前飞 速发展 2 它的出现也给各行各业带来了无限商机 :;<! 7*8 最主要 的应用就是它作为数据交换的一种通 用 格 式 2 与 其 完 全 跨 平 台 的特性 2 使得在不同平台或应用程序 之 间 共 享 数 据 以 及 相 互 通 信之间建立了无缝衔接 ! 所以 2 在 3(9 应用日益发展的今天 2%&! ’() 作为企业非常 通 用 的 一 种 文 件 格 式 2 要 使 得 它 能 够 在 不 同 企 业 " 不同平台或不同应用程序之间实 现 数 据 共 享 2 将 其 转 换 为 7*8 文件格式后再进行传送或发布就显得很有必要了 ! 本文主 要介绍 %&’() 与 7*8 的相互转换 2 实现了 %&’() 与 7*8 之间相
将数据库中的记录转换为XML文档
insert into ClassCategory(Class_ID,ClassName)values('3167382','三一班'); insert into ClassCategory(Class_ID,ClassName)values('3267382','三二班');
insert into ClassInfo(Class_ID,Class_Title,Grade_ID)values('3167382','测试数据','3167382'); insert into ClassInfo(Class_ID,Class_Title,Grade_ID)values('3267382','测试数据','3267382'); insert into ClassInfo(Class_ID,Class_Title,Grade_ID)values('3267382','测试数据','3267382'); insert into ClassInfo(Class_ID,Class_Title,Grade_ID)values('3267382','测试数据','3267382'); insert into ClassInfo(Class_ID,Class_Title,Grade_ID)values('3267382','测试数据','3267382'); insert into ClassInfo(Class_ID,Class_Title,Grade_ID)values('3267382','测试数据','3267382'); insert into ClassInfo(Class_ID,Class_Title,Grade_ID)values('3267382','测试数据','3267382');
通过jdom操作XML
写xmlpackage com。
hdz。
xml;import java.io。
FileNotFoundException;import java。
io.FileOutputStream;import java。
io.IOException;import org.jdom.Document;import org。
jdom。
Element;import org。
jdom.output。
Format;import org。
jdom。
output。
XMLOutputter;public class TestWriteXml {/***写XML by jdom*@param args*/public static void main(String[] args) {try {//输出文件路径String filePath = "c:\\hdz.xml";FileOutputStream out = new FileOutputStream(filePath);//创建根元素Element records = new Element("Records”);//设置文档的根元素Document doc = new Document(records);//创建子元素记录Element record = new Element("Record");//创建子元素内容Element name = new Element(”Name”);name.setText("管理员");record。
addContent(name);Element address = new Element(”Address");address。
setText("北京");record.addContent(address);record。
setAttribute("INDEX”, ”1”);records.addContent(record);records。
通过代码实例跟我学Java XML解析及应用——利用JDom读出数据库表数据到XML文件中的应用实例
1.1通过代码实例跟我学Java XML解析及应用——利用JDom读出数据库表数据到XML文件中的应用实例1、添加一个类读出数据库表中的数据(1)类名称为GetDBDataToXML,包名称为com.px1987.webbank.xmlParser(2)编程GetDBDataToXML程序类中的功能实现代码package com.px1987.webbank.xmlParser;import java.io.FileOutputStream;import java.io.IOException;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import org.jdom.Document;import org.jdom.Element;import org.jdom.output.Format;import org.jdom.output.XMLOutputter;import com.px1987.webbank.dao.imple.MySQLConnectDBBean;import com.px1987.webbank.dao.inter.ConnectDBInterface;import com.px1987.webbank.exception.WebBankException;public class GetDBDataToXML {Connection oneConnection=null;ResultSet oneResultSet=null;ResultSetMetaData oneResultSetMetaData=null;public GetDBDataToXML() {}public void connectToDB() throws WebBankException{ConnectDBInterface oneMySQLConnectDBBean=new MySQLConnectDBBean();oneConnection=oneMySQLConnectDBBean.getConnection();}public void queryDBData(String sqlStatement) throws SQLException{PreparedStatement onePreparedStatement=oneConnection.prepareStatement(sqlStatement);oneResultSet=onePreparedStatement.executeQuery();}public Document buildXMLDocument() throws SQLException{Element documentRoot, firstLevelTag,secondLevelTag;Document xmlDocument;xmlDocument=new Document();documentRoot=new Element("账户信息列表");xmlDocument.addContent(documentRoot);oneResultSetMetaData=oneResultSet.getMetaData();int numberOfColumns = oneResultSetMetaData.getColumnCount(); //获取字段数while(oneResultSet.next()){ //根据查询的结果集创建出对应的标签节点对象firstLevelTag=new Element("某个账户信息");documentRoot.addContent(firstLevelTag);for(int index=1; index <=numberOfColumns;index++){secondLevelTag=newElement(oneResultSetMetaData.getColumnName(index));Object oneObject=oneResultSet.getObject(index); //目的是识别某个字段是否为空if(oneObject==null){secondLevelTag.setText("");}else{secondLevelTag.setText(oneResultSet.getObject(index).toString());}firstLevelTag.addContent(secondLevelTag);}}return xmlDocument;}public void outputXMLDocument(Document xmlDocument,String targetFileName)throws IOException{Format xmlDocumentFormat = Format.getPrettyFormat();xmlDocumentFormat.setIndent(" ");xmlDocumentFormat.setEncoding("gb2312");XMLOutputter xmlDocumentOuter = new XMLOutputter(xmlDocumentFormat);// xmlDocumentOuter.output(xmlDocument,System.out);xmlDocumentOuter.output(xmlDocument,new FileOutputStream(targetFileName));}public static void main(String[] args) throws IOException, WebBankException, SQLException {String targetFileName="account.xml";String sqlStatement="select * from account";GetDBDataToXML oneGetDBDataToXML=new GetDBDataToXML();oneGetDBDataToXML.connectToDB();oneGetDBDataToXML.queryDBData(sqlStatement);oneGetDBDataToXML.outputXMLDocument(oneGetDBDataToXML.buildXMLDocument( ),targetFileName);}}3、执行本示例的程序类(1)以控制台方式输出的执行结果(2)以本地文件方式输出的执行结果。
java用dom4j将数据转化成xml文件
package com.hover.mail;import java.io.File;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException;import java.io.OutputStreamWriter;import java.io.Writer;import java.util.HashMap;import java.util.List;import java.util.Map;import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;public class FindXmlDoc {/**** @Description 创建xml文件* @param filename* @param rootElement* void* @throws 抛出异常说明*/public static void createXMLFile(String filename,String rootElement) {/** 建立document对象*/Document document = DocumentHelper.createDocument();/** 添加根节点*/document.addElement(rootElement);try {/** 将document中的内容写入文件中*/XMLWriter writer = new XMLWriter(new FileWriter(new File(filename)));writer.write(document);writer.close();} catch (Exception ex) {}}/**** @Description 保存编辑的XML文件* @param document* @param filepath* @return boolean flag 是否保存成功标记* boolean* @throws 抛出异常说明*/public boolean saveDocument(Document document,String filepath) {boolean flag = false;Writer writer = null;XMLWriter xmlWriter = null;try {writer = new OutputStreamWriter(new FileOutputStream(filepath),"utf-8");OutputFormat format = OutputFormat.createPrettyPrint();format.setEncoding("utf-8");xmlWriter = new XMLWriter(writer,format);xmlWriter.write(document);writer.close();flag = true;} catch (IOException e) {return false;}return flag;}/**** @Description 获取XML文件中的信息,如果文件存在,返回document,如果不存在,返回null* @param filepath* @return* Document* @throws 抛出异常说明*/public Document getDocument(String filepath) {Document document = null;SAXReader reader = new SAXReader();try {File file = new File(filepath);if(file.exists()){document = reader.read(file);//不是以UTF-8来读取。
(四)使用JDOM读、写xml文件
(四)使⽤JDOM读、写xml⽂件JDOM=DOM修改⽂件的优点+SAX读取快速的优点// 1.⽣成xml⽂件import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.List;import org.jdom2.Attribute;import org.jdom2.Document;import org.jdom2.Element;import org.jdom2.input.SAXBuilder;import org.jdom2.output.XMLOutputter;public static void main(String[] args) { Element addresslist = new Element("addresslist"); // 定义根节点 Element linkman = new Element("linkman"); // 定义节点名称 Element name = new Element("name"); // 定义节点名称 Element email = new Element("email"); // 定义节点名称 Attribute id = new Attribute("id", "mxzer"); // 定义属性 Document document = new Document(addresslist); // 定义⼀个Document对象 name.setText("mxzer"); // 设置元素内容 email.setText("mxzer3200@"); name.setAttribute(id); // 设置name元素的属性 linkman.addContent(name); // 设置linkman的⼦节点 linkman.addContent(email); addresslist.addContent(linkman); // 将linkman加⼊根节点下 XMLOutputter out = new XMLOutputter(); // 输出xml⽂件 out.setFormat(out.getFormat().setEncoding("GBK")); // 设置输出编码 try { out.output(document, new FileOutputStream("e:" + File.separator+ "jdom2.xml")); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }}2.解析xml⽂件/*** 在JDOM中,所有节点都是以集合的形式返回的,集合中的每⼀个对象都是Element实例.** @param args* @throws Exception*/public static void main(String[] args) throws Exception { // 1.建⽴SAX解析 SAXBuilder builder = new SAXBuilder(); // 2.找到Document⽂档 Document dc = builder.build("e:" + File.separator + "jdom2.xml"); // 3.读取根元素 Element stu = dc.getRootElement(); // 得到全部的linkman⼦元素 List list = stu.getChildren("linkman"); for (int x = 0; x < list.size(); x++) { // 输出 Element ele = (Element) list.get(x); // 取出每⼀个⼦元素 String name = ele.getChildText("name"); // 取得name元素的内容 String id = ele.getChild("name").getAttribute("id").getValue(); // 取得name元素的id属性 String email = ele.getChildText("email"); System.out.println("联系⼈信息:"); System.out.println("姓名:" + name + ", id:" + id); System.out.println("邮箱:" + email); System.out.println("------------------------------"); }}。
jaxbcontext字符串转xml方法
jaxbcontext字符串转xml方法JAXBContext是Java中用于将Java对象转换为XML表示形式的API。
它是Java Architecture for XML Binding(JAXB)规范的一部分,旨在简化Java对象和XML数据之间的映射过程。
本文将介绍如何使用JAXBContext将字符串转换为XML,并提供一些示例代码和使用建议。
我们需要在Java代码中创建一个JAXBContext对象。
可以使用JAXBContext的静态方法newInstance()来实现这一点。
newInstance()方法接受一个或多个参数,这些参数指定要转换的Java对象的类型或包的名称。
在这种情况下,我们将传递一个字符串参数,它是要转换的XML字符串。
下面是使用JAXBContext将字符串转换为XML的示例代码:```javaString xmlString = "<person><name>John</name><age>30</age></person> ";try {JAXBContext jaxbContext = JAXBContext.newInstance(String.class);Unmarshaller unmarshaller =jaxbContext.createUnmarshaller();StringReader reader = new StringReader(xmlString);String xmlObject = (String) unmarshaller.unmarshal(reader);System.out.println(xmlObject);} catch (JAXBException e) {e.printStackTrace();}```在上面的示例中,我们首先创建一个JAXBContext对象,指定要转换的Java对象的类型为String。
将数据库中表转换为XML文件
将数据库中表转换为XML文件package com.sanwang.oracletoxml;import java.io.FileWriter;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.SQLException;import java.sql.Statement;import java.util.List;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;public class Students {public static ResultSet Query(String str) { // 返回所查询的数据集try {Class.forName("oracle.jdbc.driver.OracleDriver");String url = "jdbc:oracle:thin:@10.10.10.201:1521:devdbww";String userName = "wxcb";String password = "wxcb";Connection conn = DriverManager.getConnection(url,userName,password);Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery(str);// while(rs.next()){// System.out.print(rs.getString(1) + " ");// System.out.print(rs.getString(2) + " ");//// System.out.print(rs.getString(3) + " ");//// System.out.print(rs.getString(4) + " ");//// System.out.print(rs.getString(5) + " ");//// System.out.print(rs.getString(6) + " ");//// System.out.print(rs.getString(7) + " ");//// System.out.print(rs.getString(8) + " ");//// System.out.println(rs.getString(9));// }return rs;} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}return null;}public static void writeXML(Document doc, String xmlName) { // 创建XML文档try {OutputFormat output = OutputFormat.createPrettyPrint();output.setEncoding("gb2312");XMLWriter xmlw = new XMLWriter(new FileWriter(xmlName), output);xmlw.write(doc);xmlw.close();System.out.println("创建成功....");} catch (IOException e) {e.printStackTrace();}}/** sql:表示sql语句,要查询的表信息* rootElementName:表示根元素的名称* eleElement:表示根元素下的第一个子元素,* xmlName:表示要保存的xml文件名*/public void createXML(String sql, String rootElementName, String eleElement, String xmlName) {// sql="select * from student";// rootElementName="students";ResultSet rs = Query(sql); // 返回所查询的数据集try {if (rs != null) {Document doc = DocumentHelper.createDocument();Element eleroot = doc.addElement(rootElementName); // 添加根元素ResultSetMetaData rsmd = rs.getMetaData();int colshu = rsmd.getColumnCount(); // 取得列数while (rs.next()) { // 以下是为子元素添加元素和内容Element element = eleroot.addElement(eleElement); // 为根元素添加子元素(有多少条记录则有多少子元素)for (int i = 1; i <= colshu; i++) {// String colName=rsmd.getColumnName(i); //取得当前列名// 从子元素中添加元素(列名)和元素的文本(列值) 以下是为子元素添加元素String valu = rs.getString(i);if(valu != null && valu != ""){Element ele = element.addElement(rsmd.getColumnName(i)).addText(rs.getString(i));}}}writeXML(doc, xmlName); // 调用创建XML文档的方法}} catch (SQLException e) {e.printStackTrace();}}/** sql:表示sql语句,要查询的表信息* rootElementName:表示根元素的名称* eleElement:表示根元素下的第一个子元素,*/public void createXML(String sql, String rootElementName, String eleElement) { String xmlName = rootElementName + ".xml"; // 要保存的文件名ResultSet rs = Query(sql); // 返回所查询的数据集try {if (rs != null) {Document doc = DocumentHelper.createDocument();Element eleroot = doc.addElement(rootElementName); // 添加根元素ResultSetMetaData rsmd = rs.getMetaData();int colshu = rsmd.getColumnCount(); // 取得列数while (rs.next()) { // 以下是为子元素添加元素和内容Element element = eleroot.addElement(eleElement); // 为根元素添加子元素(有多少条记录则有多少子元素)for (int i = 1; i <= colshu; i++) {// String colName=rsmd.getColumnName(i); //取得当前列名// 从子元素中添加元素(列名)和元素的文本(列值) 以下是为子元素添加元素Element ele = element.addElement(rsmd.getColumnName(i)) .addText(rs.getString(i));}}writeXML(doc, xmlName); // 调用创建XML文档的方法}} catch (SQLException e) {e.printStackTrace();}}/** sql:表示sql语句,要查询的表信息* rootElementName:表示根元素的名称* eleElement:表示根元素下的第一个子元素,*/public void createXML(String sql, String rootElementName) { String eleElement = rootElementName + "Iterm"; // 根元素下的子元素String xmlName = rootElementName + ".xml"; // 要保存的文件名ResultSet rs = Query(sql); // 返回所查询的数据集try {if (rs != null) {Document doc = DocumentHelper.createDocument();Element eleroot = doc.addElement(rootElementName); // 添加根元素ResultSetMetaData rsmd = rs.getMetaData();int colshu = rsmd.getColumnCount(); // 取得列数while (rs.next()) { // 以下是为子元素添加元素和内容Element element = eleroot.addElement(eleElement); // 为根元素添加子元素(有多少条记录则有多少子元素)for (int i = 1; i <= colshu; i++) {// String colName=rsmd.getColumnName(i); //取得当前列名// 从子元素中添加元素(列名)和元素的文本(列值) 以下是为子元素添加元素Element ele = element.addElement(rsmd.getColumnName(i)) .addText(rs.getString(i));}}writeXML(doc, xmlName); // 调用创建XML文档的方法}} catch (SQLException e) {e.printStackTrace();}}/** sql:表示sql语句,要查询的表信息*/public void createXML(String sql) {String rootElementName = "root"; // 根元素String eleElement = rootElementName + "Iterm"; // 根元素下的子元素String xmlName = rootElementName + ".xml"; // 保存的xml 文档名ResultSet rs = Query(sql); // 返回所查询的数据集try {if (rs != null) {Document doc = DocumentHelper.createDocument();Element eleroot = doc.addElement(rootElementName); // 添加根元素ResultSetMetaData rsmd = rs.getMetaData();int colshu = rsmd.getColumnCount(); // 取得列数while (rs.next()) { // 以下是为子元素添加元素和内容Element element = eleroot.addElement(eleElement); // 为根元素添加子元素(有多少条记录则有多少子元素)for (int i = 1; i <= colshu; i++) {// String colName=rsmd.getColumnName(i); //取得当前列名// 从子元素中添加元素(列名)和元素的文本(列值) 以下是为子元素添加元素Element ele = element.addElement(rsmd.getColumnName(i)) .addText(rs.getString(i));}}writeXML(doc, xmlName); // 调用创建XML文档的方法}} catch (SQLException e) {e.printStackTrace();}}public static void main(String[] args) {Students stu = new Students();String sql = "select * from socket_gwcmd";// Query(sql);stu.createXML(sql,"socketGwcmd","oneResult","d:\\socketG wcmd.xml");}}。
jdom解析xml
jdom解析xml这次把代码整理了⼀下,打包发上来了,程序中需要⽤到的jar包也⼀起打在⾥⾯了,有兴趣的朋友可以解压后直接导⼊的eclipse⾥运⾏! xml是⼀种⼴为使⽤的可扩展标记语⾔,java中解析xml的⽅式有很多,最常⽤的像jdom、dom4j、sax等等。
前两天刚好有个程序需要解析xml,就学了下jdom,写了个⼩例⼦,这⾥做个学习笔记。
要使⽤jdom解析xml⽂件,需要下载jdom的包,我使⽤的是jdom-1.1。
解压之后,将lib⽂件夹下的.jar⽂件以及build⽂件夹下的jdom.jar拷贝到⼯程⽂件夹下,然后就可以使⽤jdom操作xml⽂件了。
⼀、读取xml⽂件假设有这样⼀个xml⽂件:Xml代码1. <?xml version="1.0" encoding="UTF-8"?>2. <sys-config>3. <jdbc-info>4. <driver-class-name>oracle.jdbc.driver.OracleDriver</driver-class-name>5. <url>jdbc:oracle:thin:@localhost:1521:database</url>6. <user-name>why</user-name>7. <password>why</password>8. </jdbc-info>9. <provinces-info>10. <province id="hlj" name="⿊龙江">11. <city id="harb">哈尔滨</city>12. <city id="nj">嫩江</city>13. </province>14. <province id="jl" name="吉林"></province>15. </provinces-info>16. </sys-config>⾸先,⽤ org.jdom.input.SAXBuilder 这个类取得要操作的xml⽂件,会返回⼀个 org.jdom.Document 对象,这⾥需要做⼀下异常处理。
JAVABean和XML之间的相互转换-XStream简单入门
JAVABean和XML之间的相互转换-XStream简单⼊门JAVA Bean和XML之间的相互转换 - XStream简单⼊门背景介绍我们在⼯作中经常遇到⽂件解析为数据或者数据转化为xml⽂件的情况,之前我⼀直采⽤的⽅式都是⼿动的来解析或拼接XML⽂件,这个做法固然是可以的,但是代码部分会显得⾮常臃肿,所以就查找了相关的资料,发现了⼀个名为XStream的类库可以做这件事,下⾯我们来看⼀下.XStream的简介官⽹地址:从官⽹介绍我们能看到以下⼏个特性:易⽤不需要Mapping⽂件不需要额外提供Mapping⽂件即可完成映射⾼性能⾼速且低内存消耗整洁的XML⽂件⽣成的XML的相当简洁不需要修改对象可以序列化private修饰的属性,且不需要提供get/set⽅法完整的对象结构⽀持⽀持循环引⽤情况下的输出兼容其他的XML API可以对任何的树形结构进⾏序列化或反序列化可以⾃定义的转换策略可以通过策略的注册,允许⾃定义特定类型的转化为XML的样式安全的框架对未分组的类型进⾏精细化的控制,防⽌输⼊错误⽽导致的安全问题良好的异常反馈当XML⽂件格式错误的时候,能够提供诊断信息帮助处理多样的输出格式不⽌是XML他还⽀持JSON及其变种注解简介从XStream的官⽹我们了解到,XStream不需要Mapping⽂件就能完成JavaBean和XML之间的转变,但⼤部分时候我们需要对⽣成的XML⽂件进⾏定制,name我们需要了解XStream提供的注解注解作⽤适⽤范围@XStreamAlias设置别名类或属性@XStreamImplicit忽略属性集合类型的属性注解作⽤适⽤范围@XStreamAsAttribute将JavaBean转换成节点属性属性@XStreamOmitField忽略属性属性@XStreamConverter注⼊转换器类应⽤实例⾸先在我们的项⽬中加⼊依赖:<dependency><groupId>com.thoughtworks.xstream</groupId><artifactId>xstream</artifactId><version>1.4.11.1</version></dependency>假定环境为Computer和CPU两个类:public class Computer implements Serializable {private static final long serialVersionUID = 567119860357020081L;private String name;private String brand;private List<CPU> processors;public Computer() {}public String getName() {return name;}public void setName(String name) { = name;}public String getBrand() {return brand;}public void setBrand(String brand) {this.brand = brand;}public List<CPU> getProcessors() {return processors;}public void setProcessors(List<CPU> processors) {this.processors = processors;}}public class CPU implements Serializable {private static final long serialVersionUID = -718438777162957779L;private String name;private String generation;public CPU() {}public String getName() {return name;}public void setName(String name) { = name;}public String getGeneration() {return generation;}public void setGeneration(String generation) {this.generation = generation;}}写⼀个测试⽅法:import com.hykj.facheck.entity.CPU;import puter;import com.thoughtworks.xstream.XStream;import com.thoughtworks.xstream.io.xml.DomDriver;import java.util.ArrayList;import java.util.List;public class XStreamTest {public static void main(String[] args) {List<CPU> cpuList = new ArrayList<>();CPU cpu1 = new CPU();cpu1.setGeneration("8-i5-K");cpu1.setName("第⼀个");cpuList.add(cpu1);CPU cpu2 = new CPU();cpu2.setGeneration("8-i5-U");cpu2.setName("第⼆个");cpuList.add(cpu2);Computer computer = new Computer();computer.setBrand("huawei");computer.setName("wej-laptop");computer.setProcessors(cpuList);XStream xstream = new XStream(new DomDriver());xstream.ignoreUnknownElements();xstream.processAnnotations(Computer.class);//javabean to xmlString xml = xstream.toXML(computer);System.out.println(xml);//xml to javabeanComputer computerFromXml = (Computer) xstream.fromXML(xml);System.out.println(computer.getName());}}运⾏程序,控制台打结果如下:Connected to the target VM, address: '127.0.0.1:53977', transport: 'socket'<puter><name>wej-laptop</name><brand>huawei</brand><processors><com.hykj.facheck.entity.CPU><name>第⼀个</name><generation>8-i5-K</generation></com.hykj.facheck.entity.CPU><com.hykj.facheck.entity.CPU><name>第⼆个</name><generation>8-i5-U</generation></com.hykj.facheck.entity.CPU></processors></puter>Security framework of XStream not initialized, XStream is probably vulnerable. wej-laptopDisconnected from the target VM, address: '127.0.0.1:53977', transport: 'socket' Process finished with exit code 0也就是说这样就可以⽤了,很棒棒但是这个XML和我们的需求不太⼀样,我们加上注解,代码变成了这样: import com.thoughtworks.xstream.annotations.XStreamAlias;import java.io.Serializable;import java.util.List;@XStreamAlias("my")public class Computer implements Serializable {private static final long serialVersionUID = 567119860357020081L;private String name;private String brand;@XStreamAlias("cpuList")private List<CPU> processors;public Computer() {}public String getName() {return name;}public void setName(String name) { = name;}public String getBrand() {return brand;}public void setBrand(String brand) {this.brand = brand;}public List<CPU> getProcessors() {return processors;}public void setProcessors(List<CPU> processors) {this.processors = processors;}}import com.thoughtworks.xstream.annotations.XStreamAlias;import java.io.Serializable;@XStreamAlias("oneCpu")public class CPU implements Serializable {private static final long serialVersionUID = -718438777162957779L;private String name;private String generation;public CPU() {}public String getName() {return name;}public void setName(String name) { = name;}public String getGeneration() {return generation;}public void setGeneration(String generation) {this.generation = generation;}}测试⽅法不变,结果如下:Connected to the target VM, address: '127.0.0.1:54181', transport: 'socket'<my><name>wej-laptop</name><brand>huawei</brand><cpuList><oneCpu><name>第⼀个</name><generation>8-i5-K</generation></oneCpu><oneCpu><name>第⼆个</name><generation>8-i5-U</generation></oneCpu></cpuList></my>Security framework of XStream not initialized, XStream is probably vulnerable. wej-laptopDisconnected from the target VM, address: '127.0.0.1:54181', transport: 'socket' Process finished with exit code 0这个XML就很舒服啦.我们载试⼀下循环引⽤的情况吧,代码如下:import com.thoughtworks.xstream.annotations.XStreamAlias;import java.io.Serializable;import java.util.List;@XStreamAlias("my")public class Computer implements Serializable {private static final long serialVersionUID = 567119860357020081L;private String name;private String brand;@XStreamAlias("cpuList")private List<CPU> processors;public Computer() {}public String getName() {return name;}public void setName(String name) { = name;}public String getBrand() {return brand;}public void setBrand(String brand) {this.brand = brand;}public List<CPU> getProcessors() {return processors;}public void setProcessors(List<CPU> processors) {this.processors = processors;}}import com.thoughtworks.xstream.annotations.XStreamAlias; import java.io.Serializable;@XStreamAlias("oneCpu")public class CPU implements Serializable {private static final long serialVersionUID = -718438777162957779L; private String name;private String generation;private Computer computer;public CPU() {}public String getName() {return name;}public void setName(String name) { = name;}public String getGeneration() {return generation;}public void setGeneration(String generation) {this.generation = generation;}public Computer getComputer() {return computer;}public void setComputer(Computer computer) {puter = computer;}}import com.thoughtworks.xstream.XStream;import com.thoughtworks.xstream.io.xml.DomDriver;import java.util.ArrayList;import java.util.List;public class XStreamTest {public static void main(String[] args) {Computer computer = new Computer();computer.setBrand("huawei");computer.setName("wej-laptop");List<CPU> cpuList = new ArrayList<>();CPU cpu1 = new CPU();cpu1.setGeneration("8-i5-K");cpu1.setName("第⼀个");cpu1.setComputer(computer);cpuList.add(cpu1);CPU cpu2 = new CPU();cpu2.setGeneration("8-i5-U");cpu2.setName("第⼆个");cpuList.add(cpu2);cpu1.setComputer(computer);computer.setProcessors(cpuList);XStream xstream = new XStream(new DomDriver());xstream.ignoreUnknownElements();xstream.processAnnotations(Computer.class);//javabean to xmlString xml = xstream.toXML(computer);System.out.println(xml);//xml to javabeanComputer computerFromXml = (Computer) xstream.fromXML(xml);System.out.println(computer.getName());}}运⾏⼀下,先查看是否构成循环引⽤:确认有循环引⽤,继续运⾏代码,控制台打印如下:Connected to the target VM, address: '127.0.0.1:54221', transport: 'socket'<my><name>wej-laptop</name><brand>huawei</brand><cpuList><oneCpu><name>第⼀个</name><generation>8-i5-K</generation><computer reference="../../.."/></oneCpu><oneCpu><name>第⼆个</name><generation>8-i5-U</generation></oneCpu></cpuList></my>Security framework of XStream not initialized, XStream is probably vulnerable. wej-laptopDisconnected from the target VM, address: '127.0.0.1:54221', transport: 'socket' Process finished with exit code 0可以看到⽣成的XML中采⽤类似路径的reference属性来标识了位置,实际上我们⼀般是需要忽略这个属性的,采⽤@XStreamOmitField注解就好了.。
Jdom读取数据库并生成xml文件示例
1.WriteXml.java:代码如下:package .csrc.xml;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Arrays;import java.util.List;import org.jdom2.Document;import org.jdom2.Element;import org.jdom2.output.Format;import org.jdom2.output.XMLOutputter;import .csrc.jdbc.DatabaseConnection;/*** @function 使用Jdom查询数据库把数据写入xml文件中* @author admin**/public class WriteXml {public static void WriterFileToXml(){//创建一个xml文件File file = new File("D://user.xml");//创建数据库连接Connection conn = DatabaseConnection.getConn();String sql = "select * from user";try {Statement st = conn.createStatement();//创建预处理对象ResultSet rs = st.executeQuery(sql);//获得结果集Element root = new Element("users");//创建根元素while (rs.next()) {Element user = new Element("user");//创建子元素root.addContent(user);//添加子元素到根节点Element id = new Element("ID");//创建叶子节点id.setText(rs.getString("ID"));//给叶子节点赋值user.addContent(id);//添加叶子节点到父节点Element ename = new Element("USERNAME");ename.setText(rs.getString("USERNAME"));//给叶子节点赋值user.addContent(ename);Element password = new Element("PASSWORD");//创建叶子节点password.setText(rs.getString("PASSWORD"));//给叶子节点赋值user.addContent(password);//添加叶子节点到父节点Element status = new Element("STATUS");status.setText(rs.getString("STA TUS"));//给叶子节点赋值user.addContent(status);Element descn = new Element("DESCN");descn.setText(rs.getString("DESCN"));//给叶子节点赋值user.addContent(descn);}Document doc = new Document();//创建文本对象doc.addContent(root);//添加树倒文本中Format format= Format.getCompactFormat();format.setIndent(" ");XMLOutputter out = new XMLOutputter(format);//创建输出流FileWriter fw = new FileWriter(file);//写数据out.output(doc, fw);//输出到xml文件中fw.close();//关闭写入流} catch (SQLException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}public static void main(String[] args) {//把数据库的数据写入xml文件中WriteXml.WriterFileToXml();}}2.连接数据库java类:DatabaseConnection.java:代码如下复制代码package .csrc.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;/*** 连接数据库** @author admin**/public class DatabaseConnection {private static final String driverName = "com.mysql.jdbc.Driver";private static final String url = "jdbc:mysql://localhost/springdb?autoReconnect=true&useUnicode=true&characterEnc oding=UTF8";private static final String username = "root";private static final String password = "root";static {try {Class.forName(driverName);} catch (ClassNotFoundException e) {e.printStackTrace();}}public static Connection getConn() {Connection conn = null;try {conn = DriverManager.getConnection(url, username, password);} catch (SQLException e) {e.printStackTrace();}return conn;}public static void main(String[] args) {Connection conn = getConn();System.out.println(conn);}}更多信息请查看IT技术专栏。
java中json转xml
java中json转xml 参考:/blog/1394844需要json-lib-2.1-jdk15.jar和xom-1.2.5.jar,maven pom.xml如下:xml代码<!--json 转 xml--><dependency><groupId>net.sf.json-lib</groupId><artifactId>json-lib</artifactId><version>2.1</version><classifier>jdk15</classifier></dependency><dependency><groupId>xom</groupId><artifactId>xom</artifactId><version>1.2.5</version><type>jar</type><scope>compile</scope></dependency></dependencies>java代码package com.nirvanainfo.salesleads.framework.utils;import java.io.ByteArrayOutputStream;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import net.sf.json.JSON;import net.sf.json.JSONSerializer;import net.sf.json.xml.XMLSerializer;import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.io.OutputFormat;import org.dom4j.io.XMLWriter;/*** Created by Administrator on 2016/9/2.*/public class XmlConverUtil {/*** map to xml xml <node><key label="key1">value1</key><key* label="key2">value2</key>......</node>** @param map* @return*/public static String maptoXml(Map map) {Document document = DocumentHelper.createDocument();Element nodeElement = document.addElement("node");for (Object obj : map.keySet()) {Element keyElement = nodeElement.addElement("key");keyElement.addAttribute("label", String.valueOf(obj));keyElement.setText(String.valueOf(map.get(obj)));}return doc2String(document);}/*** list to xml xml <nodes><node><key label="key1">value1</key><key* label="key2">value2</key>......</node><node><key* label="key1">value1</key><key* label="key2">value2</key>......</node></nodes>** @param list* @return*/public static String listtoXml(List list) throws Exception {Document document = DocumentHelper.createDocument();Element nodesElement = document.addElement("nodes");int i = 0;for (Object o : list) {Element nodeElement = nodesElement.addElement("node");if (o instanceof Map) {for (Object obj : ((Map) o).keySet()) {Element keyElement = nodeElement.addElement("key");keyElement.addAttribute("label", String.valueOf(obj));keyElement.setText(String.valueOf(((Map) o).get(obj)));}} else {Element keyElement = nodeElement.addElement("key");keyElement.addAttribute("label", String.valueOf(i));keyElement.setText(String.valueOf(o));}i++;}return doc2String(document);}/*** json to xml {"node":{"key":{"@label":"key1","#text":"value1"}}} conver * <o><node class="object"><key class="object"* label="key1">value1</key></node></o>** @param json* @return*/public static String jsontoXml(String json) {try {XMLSerializer serializer = new XMLSerializer();JSON jsonObject = JSONSerializer.toJSON(json);return serializer.write(jsonObject);} catch (Exception e) {e.printStackTrace();}return null;}/*** xml to map xml <node><key label="key1">value1</key><key* label="key2">value2</key>......</node>** @param xml* @return*/public static Map xmltoMap(String xml) {try {Map map = new HashMap();Document document = DocumentHelper.parseText(xml);Element nodeElement = document.getRootElement();List node = nodeElement.elements();for (Iterator it = node.iterator(); it.hasNext();) {Element elm = (Element) it.next();map.put(elm.attributeValue("label"), elm.getText());elm = null;}node = null;nodeElement = null;document = null;return map;} catch (Exception e) {e.printStackTrace();}return null;}/*** xml to list xml <nodes><node><key label="key1">value1</key><key * label="key2">value2</key>......</node><node><key* label="key1">value1</key><key* label="key2">value2</key>......</node></nodes>** @param xml* @return*/public static List xmltoList(String xml) {try {List<Map> list = new ArrayList<Map>();Document document = DocumentHelper.parseText(xml);Element nodesElement = document.getRootElement();List nodes = nodesElement.elements();for (Iterator its = nodes.iterator(); its.hasNext();) {Element nodeElement = (Element) its.next();Map map = xmltoMap(nodeElement.asXML());list.add(map);map = null;}nodes = null;nodesElement = null;document = null;return list;} catch (Exception e) {e.printStackTrace();}return null;}/*** xml to json <node><key label="key1">value1</key></node> 转化为 * {"key":{"@label":"key1","#text":"value1"}}** @param xml* @return*/public static String xmltoJson(String xml) {XMLSerializer xmlSerializer = new XMLSerializer();return xmlSerializer.read(xml).toString();}/**** @param document* @return*/public static String doc2String(Document document) {String s = "";try {// 使⽤输出流来进⾏转化ByteArrayOutputStream out = new ByteArrayOutputStream();// 使⽤UTF-8编码OutputFormat format = new OutputFormat(" ", true, "UTF-8"); XMLWriter writer = new XMLWriter(out, format);writer.write(document);s = out.toString("UTF-8");} catch (Exception ex) {ex.printStackTrace();}return s;}}。
javaAPI解析XML文件--JDOM
javaAPI解析XML文件--JDOMJDOM解析xml文件:1、创建空白document文档对象//创建一个空的文档对象Document doc = new Document();2、读取xml文件,返回document对象//解析器SAXBuilder builder = new SAXBuilder();//指定XML文件File file = new File(fileName);//开始解析,构建树型结构并返回Document doc = builder.build("src/po.xml");3、分析元素//获得根元素,员工列表Element rootElmt = doc.getRootElement();//获取所有的子节点List list = rootElmt.getChildren();//获取所有的"emp"子节点List list = rootElmt.getChildren("emp");//获取第一个叫"emp"子节点Element e = root.getChild("emp");//解析所有员工的元素集合for(Element e:list) {//获取type属性值String type=e.getAttributeValue("type");//获取id子元素值String id = e.getChildText("id");}4、增加元素,并为元素设置数据或属性,删除元素//为document增加一个根元素doc.addContent(rootElmt)//创建一个"emp"元素Element element = new Element("emp");//为"emp"元素增加一个"type"属性element.setAttribute("type", "leader");//创建一个"id"元素Element idElmt = new Element("id");idElmt.setText("8");//将"id"元素作为子元素添加到"emp"元素中element.addContent(element1);//将"emp"元素作为子元素添加到根元素中rootElmt.addContent(element);//为empElmt元素删除一个叫"id"的子元素empElmt.removeChild("id");5、输出xml文件//XMLOutputter 类用来实现XML文件的输出,//在创建的时候需要一个Format对象来格式化XML文件XMLOutputter out = new XMLOutputter(Format.getPrettyFormat());//写出xml文件到操作系统out.output(doc, new FileOutputStream(new File("src/po.xml")));。
通过代码实例跟我学Java XML解析及应用——开源的JDom编程应用技术及在Java项目中的应用实例(第2部分)
1.1通过代码实例跟我学Java XML解析及应用——开源的JDom编程应用技术及在Java项目中的应用实例(第2部分)4、JDom的应用示例下面例实现对一个XML进行处理,并将处理后的结果保存为另一个XML文件(1)Java程序import org.jdom.*;import org.jdom.output.*;import org.jdom.input.*;import java.io.*;public class testJDOM{public testJDOM(){}public Document getXMLDocumentFromFile(String xmlFileName){Document xmlDocument=null;try{/*获得org.jdom.input.SAXBuilder的一个实例,用来获得XML文档。
参数中没有指定使用什么解析器,因此使用默认的解析器。
*/SAXBuilder sb = new SAXBuilder();//从文件构造一个Document,因为XML文件中已经指定了编码,所以这里不必了xmlDocument = sb.build(new FileInputStream(xmlFileName));}catch(Exception e){System.out.println(e.toString());}return xmlDocument;}public void writeXMLDocumentToFile(Document xmlDocument,String xmlFileName){ try{String indent = " ";boolean newLines = true;XMLOutputter outp = new XMLOutputter(indent,newLines,"GB2312");outp.setTextTrim(true);outp.output(xmlDocument, new FileOutputStream(xmlFileName));}catch(Exception e){System.out.println(e.toString());}}public Document buildJDOMDocument(){Document xmlDocument=getXMLDocumentFromFile("testJDOM.xml");Element root = xmlDocument.getRootElement(); //得到根元素 xmlDocument.removeContent(); //这样可以按照我们的要求来决定XML文件中的各个标签的顺序//加入一条处理指令ProcessingInstruction pi = new ProcessingInstruction("xml-stylesheet","href=\"bookList.xsl\" type=\"text/xsl\"");xmlDocument.addContent(pi);xmlDocument.addContent(root); //这样 XML的根标签则在该指令的后面出现java.util.List books = root.getChildren(); //得到根元素所有子元素的集合 Element book = (Element)books.get(0); //得到第一个book元素Attribute bookAttribute = new Attribute("hot","true"); //为第一本书添加一条属性 book.setAttribute(bookAttribute);Element author = book.getChild("author"); //得到指定的字元素author.setText("王五"); //将作者改为王五//或 Text t = new Text("王五");book.addContent(t);Element price = book.getChild("price"); //得到指定的字元素//修改价格,比较郁闷的是我们必须自己转换数据类型,而这正是JAXB的优势price.setText(Float.toString(50.0f));return xmlDocument;}public static void main(String args[])throws Exception{testJDOM mainObj=new testJDOM();mainObj.writeXMLDocumentToFile(mainObj.buildJDOMDocument(),"testJDOMCopy1.xml"); }}(2)XML数据文件---testJDOM.xml<?xml version="1.0" encoding="GBK"?><bookList><book><name>Java编程入门</name><author>张三</author><publishDate>2002-6-6</publishDate><price>35.0</price></book><book><name>XML在Java中的应用</name><author>李四</author><publishDate>2002-9-16</publishDate><price>92.0</price></book></bookList>(3)前面的bookList.xsl文件的内容<?xml version="1.0" encoding="GB2312"?><!-- edited with XMLSPY v2004 rel. 3 U () by chengm (a) --> <xsl:stylesheet xmlns:xsl="/TR/WD-xsl"><xsl:template match="/"><html><body><xsl:apply-templates select="bookList"/></body></html></xsl:template><xsl:template match="bookList"><Table border="3"><TR><TD>书名</TD><TD>作者</TD><TD>出版时间</TD><TD>价格</TD></TR><xsl:apply-templates select="book"/> </Table></xsl:template><xsl:template match="book"><TR><TD><xsl:value-of select="name"/></TD><TD><xsl:value-of select="author"/></TD><TD><xsl:value-of select="publishDate"/> </TD><TD><xsl:value-of select="price"/></TD></TR></xsl:template></xsl:stylesheet>(4)执行后的结果文件为---- testJDOMCopy.xml<?xml version="1.0" encoding="GB2312"?><?xml-stylesheet href="bookList.xsl" type="text/xsl"?> <bookList><book hot="true"><name>Java编程入门</name><author>王五</author><publishDate>2002-6-6</publishDate><price>50.0</price></book><book><name>XML在Java中的应用</name><author>李四</author><publishDate>2002-9-16</publishDate><price>92.0</price></book></bookList>(5)在浏览器中浏览它5、JDom的应用示例将数据库中某一数据库表中的数据保存到XML文件中,请见CreateXMLFileFromDataBase.java文件。
运用JDom+XML+XSLT+AJAX实现局部刷新显示查询返回结果集的程序代码示例
运用JDom+XML+XSLT+AJAX实现局部刷新显示查询返回结果集的程序代码示例1、包含数据查询表单的JSP页面代码示例<%@page contentType="text/html; charset=GB2312"%><html><head><script type="" src="ajax.js"></script></head><body bgcolor="#ffffff" background="picture/bg.jpg"> 输入关键字:<input name="key" size="8"/> <input type="button" value="搜索" onclick="javascript:showbook()"/> <input type="button" value="显示所有图书" onclick="javascript:showallbook()"/> <a href="main.jsp">新书上架</a><br/><div id="list"></div></body></html>数据查询表单如下图所示:2、实现局部刷新显示查询返回结果集的AJAX的JavaScript程序代码示例var currentPos;var httpRequest;function showbook(){if(document.getElementById("key").value==""){alert("请输入关键字!");return;}requestURL="showbook?key="+document.getElementById("key").value; currentPos="list";httpRequest=getHTTPRequestObject();httpRequest.onreadystatechange = processHttpResponseXML; httpRequest.open("GET",requestURL, true); // Get 请求方式的代码httpRequest.send(null);}function showallbook(){requestURL="showbook";currentPos="list";httpRequest=getHTTPRequestObject();httpRequest.onreadystatechange = processHttpResponseXML; httpRequest.open("GET",requestURL, true); // Get 请求方式的代码httpRequest.send(null);}function getHTTPRequestObject(){var httpRequestObject;if (window.XMLHttpRequest) { // Mozilla, Safari, ...httpRequestObject = new XMLHttpRequest();}else if (window.ActiveXObject){ // IEtry{httpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");}catch (e) {try{httpRequestObject= new ActiveXObject("Msxml2.XMLHTTP");}catch (e2){alert("您的浏览器有问题!");}}}return httpRequestObject;}function processHttpResponseXML (){if (httpRequest.readyState == 4) {if (httpRequest.status == 200) { //检查是否成功接收了服务器响应//alert(httpRequest.responseXML);var responseDiv=document.getElementById(currentPos);var domDoc =httpRequest.responseXML;var xslDoc = new ActiveXObject('Microsoft.XMLDOM');xslDoc.async=false;xslDoc.load("book.xsl");responseDiv.innerHTML=domDoc.transformNode(xslDoc);}else if(httpRequest.status == 404) {alert("没有找到与所请求的文件相匹配的资源!");}else {alert("你所请求的页面发生异常,错误代码为:"+httpRequest.status);}}else {document.getElementById(currentPos).innerHTML = "检测中,请稍等...";}}这里运用JDom+XML+XSLT+AJAX实现局部刷新显示查询返回结果集。
java json转xml方法
Java JSON 转 XML 方法详解在 Java 中,可以使用多种方式将 JSON 格式的数据转换为 XML 格式,下面介绍两种常用的方法:1.使用 JSONObject 和 JSONObject.toXMLString 方法首先,我们需要创建一个 JSONObject 对象,使用JSONObject.toXMLString 方法将 JSON 数据转换为 XML 格式字符串。
这个方法会返回一个 XML 字符串,可以直接使用。
```javaimport java.util.JSONObject;public class JSONToXML {public static void main(String[] args) {JSONObject jsonObject = new JSONObject("{"name": "John", "age": 30}");String xmlString = jsonObject.toXMLString();System.out.println(xmlString);}}```输出结果:```xml<person><name>John</name><age>30</age></person>```可以看到,输出结果和 JSON 数据一致,已经成功将 JSON 数据转换为 XML 格式。
2.使用 JSONArray 和 JSONArray.toXMLString 方法如果 JSON 数据中包含多个对象,可以使用 JSONArray 对象将JSON 数据转换为多个 XML 字符串,然后再将它们拼接起来。
```javaimport java.util.JSONArray;import java.util.JSONObject;public class JSONToXML {public static void main(String[] args) {JSONArray jsonObjects = new JSONArray("{"name": "John", "age": 30}",{"name": "Jack", "age": 20}", {"name": "Lucy", "age": 18"}});JSONObject jsonObject = jsonObjects.getJSONObject(0); String xmlString = jsonObject.toXMLString();System.out.println(xmlString);}}```输出结果:```xml<person><name>John</name><age>30</age></person><person><name>Jack</name><age>20</age></person><person><name>Lucy</name><age>18</age></person>```可以看到,使用 JSONArray 对象可以将多个 JSON 对象转换为多个 XML 字符串,然后再将它们拼接起来,最终得到一个完整的 XML 文件。
基于JDOM技术实现数据库和XML文档数据互换的研究
基于JDOM技术实现数据库和XML文档数据互换的研究姜军平;褚伟丽
【期刊名称】《山东科技大学学报(自然科学版)》
【年(卷),期】2006(025)003
【摘要】JDOM是一个开放源代码的纯Jawa的API,它基于树型结构,利用纯Java 的技术可对XML文档实现解析、生成、序列化.使用标准的SQL语句和JDBC API 来完成对数据库进行读取和写入操作.本文介绍了利用JDOM技术实现在XML文档和关系数据库之间实现数据交换的方法.
【总页数】4页(P88-91)
【作者】姜军平;褚伟丽
【作者单位】菏泽医学专科学校,山东,菏泽,274030;山东科技大学,天盾科技有限公司,山东,泰安,271019
【正文语种】中文
【中图分类】TP274.2
【相关文献】
1.基于JDOM的XML文档处理的设计与实现 [J], 郭本俊
2.JDOM在数据库表单转换成XML文档中的应用研究 [J], 范新民;何猛
3.JDOM API在数据库表单-XML文档变换中的应用研究 [J], 祁明龙
4.用JDOM实现数据库到XML文档的转换 [J], 王娟;魏应彬
5.XML文档与关系数据库数据映射互换研究 [J], 贾颖
因版权原因,仅展示原文概要,查看原文内容请购买。
oracle转mysql java编码
oracle转mysql java编码在实际的软件开发过程中,常常要涉及到数据库的迁移和转换。
有时候我们需要将Oracle数据库迁移到MySQL数据库。
本文将介绍如何使用Java编码实现Oracle转MySQL的数据库迁移。
一、准备工作在开始之前,我们需要确保以下几个方面:1.安装Java开发环境2.安装MySQL数据库,并创建相应的数据库和表结构3.确保Oracle数据库和MySQL数据库可以相互访问二、导出Oracle数据首先,我们需要将Oracle数据库中的数据导出为SQL文件。
在Oracle数据库中,我们可以使用exp命令导出数据。
exp username/password@sid file=dumpfile.dmplog=dumpfile.log其中,username为Oracle数据库的用户名,password为密码,sid为Oracle数据库的实例名。
dumpfile.dmp为导出的数据文件,dumpfile.log为日志文件。
导出完成后,我们可以得到一个包含Oracle数据的SQL文件。
三、使用Java编码实现数据库迁移下面我们将介绍如何使用Java编码来实现数据库迁移。
1.创建Java项目首先,我们需要创建一个Java项目,并导入相关的依赖库。
常见的数据库操作库有JDBC、MyBatis等,我们可以选择其中的一个来操作数据库。
这里我们选择使用JDBC来进行操作。
2.连接Oracle数据库在Java代码中,我们使用JDBC来连接数据库。
首先,我们需要下载并安装Oracle JDBC驱动程序。
然后,我们可以通过如下代码来连接Oracle数据库:```javaimport java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class OracleConnection {public static void main(String[] args) {Connection connection = null;try {// Load the Oracle JDBC driverClass.forName("oracle.jdbc.driver.OracleDriver");// Create a connection to the Oracle databaseconnection =DriverManager.getConnection("jdbc:oracle:thin:@//localhost:15 21/sid", "username", "password");// Do something with the connection} catch (ClassNotFoundException e) {System.out.println("Oracle JDBC Driver not found");e.printStackTrace();} catch (SQLException e) {System.out.println("Connection failed");e.printStackTrace();} finally {// Close the connectiontry {if (connection != null) {connection.close();}} catch (SQLException e) {System.out.println("Error closing connection");e.printStackTrace();}}}}```在上面的代码中,需要将localhost替换为你的Oracle数据库所在的机器IP地址,1521为Oracle数据库的默认端口号,sid为Oracle数据库的实例名,username为Oracle数据库的用户名,password为密码。
Jdom方式进行的XML文件、Document、String之间的相互转换
Jdom方式进行的XML文件、Document、String之间的相互转换XML文件:Xml代码1.<?xml version="1.0" encoding="UTF-8"?><books><book><name>哈里波特</name><price>10</price><memo>这是一本很好看的书。
</memo></book></books>Java代码:Java代码1.import java.io.*;2.3.import org.jdom.Document;4.import org.jdom.input.SAXBuilder;5.import org.jdom.output.Format;6.import org.jdom.output.XMLOutputter;7.8./**9.* JDOM 方式操作XML10.*11.* @author Watson Xu12.* @date 2011-5-3 下午02:20:4913.*/14.public class OperationXMLByJdom {15./**16.* DOCUMENT格式化输出保存为XML17.*18.* @param doc JDOM的Document19.* @param filePath 输出文件路径20.* @throws Exception21.*/22.public static void doc2XML(Document doc, String fileP ath) throws Exception{23.Format format = Format.getCompactFormat();24.format.setEncoding("UTF-8"); //设置XML文件的字符为UTF-825.format.setIndent(" ");//设置缩进26.27.XMLOutputter outputter = new XMLOutputter(format) ;//定义输出 ,在元素后换行,每一层元素缩排四格28.FileWriter writer = new FileWriter(filePath);//输出流29.outputter.output(doc, writer);30.writer.close();31.}32.33./**34.* 字符串转换为DOCUMENT35.*36.* @param xmlStr 字符串37.* @return doc JDOM的Document38.* @throws Exception39.*/40.public static Document string2Doc(String xmlStr) thro ws Exception {41.java.io.Reader in = new StringReader(xmlStr);42.Document doc = (new SAXBuilder()).build(in);43.return doc;44.}45.46./**47.* Document转换为字符串48.*49.* @param xmlFilePath XML文件路径50.* @return xmlStr 字符串51.* @throws Exception52.*/53.public static String doc2String(Document doc) throws Exception {54.Format format = Format.getPrettyFormat();55.format.setEncoding("UTF-8");// 设置xml文件的字符为UTF-8,解决中文问题56.XMLOutputter xmlout = new XMLOutputter(format);57.ByteArrayOutputStream bo = new ByteArrayOutputStr eam();58.xmlout.output(doc, bo);59.return bo.toString();60.}61.62./**63.* XML转换为Document64.*65.* @param xmlFilePath XML文件路径66.* @return doc Document对象67.* @throws Exception68.*/69.public static Document xml2Doc(String xmlFilePath) th rows Exception {70.File file = new File(xmlFilePath);71.return (new SAXBuilder()).build(file);72.}73.74.public static void main(String[] args) {75.try{76.Document doc = xml2Doc("test.xml");77.System.out.println(doc);78.System.out.println(doc2String(doc));79.doc = string2Doc(doc2String(doc));80.doc2XML(doc, "1.xml");81.} catch (Exception e) {82. e.printStackTrace();83.}84.85.}86.}输出XML文件:Java代码1.<?xml version="1.0" encoding="UTF-8"?>2.<books>3.<book>4.<name>哈里波特</name>5.<price>10</price>6.<memo>这是一本很好看的书。
java将表的一条数据转为xml文件的方法
在Java中,将表的一条数据转为XML文件是一个常见的操作。
本文将介绍如何使用Java来实现这一功能,并提供了详细的代码示例。
1. 确定需要转换的数据我们需要确定需要转换为XML文件的数据。
通常情况下,这些数据来自于数据库中的某张表的一条记录。
在本文的示例中,我们假设我们需要将一条学生的记录转为XML文件。
2. 创建数据模型在Java中,我们通常会使用对象来表示数据。
我们首先需要创建一个学生对象,并为该对象添加相应的属性,如学生的尊称、芳龄、性别等。
```javapublic class Student {private String name;private int age;private String gender;// 省略了getter和setter方法}```3. 将数据转为XML在Java中,我们通常会使用第三方库来帮助我们将数据转为XML文件。
在本文的示例中,我们将使用dom4j这个开源的XML解析库来实现数据到XML的转换。
```javapublic class XMLConverter {public String convertToXML(Student student) {Document document =DocumentHelper.createDocument();Element root = document.addElement("student");root.addElement("name").addText(student.getName());root.addElement("age").addText(String.valueOf(student.getAge( )));root.addElement("gender").addText(student.getGender());return document.asXML();}}```4. 测试转换结果我们需要编写一个测试类来验证我们的转换是否成功。