Java 持久化操作之 --XML
摘自:http://www.cnblogs.com/lsy131479/p/8728767.html
1)有关XML简介
XML(EXtensible Markup Language)可扩展标记语言
特点:XML与操作系统、编程语言的开发平台无关
实现不同系统之间的数据交换
作用:数据交换、配置应用程序和网站
大致文档结构:
XML文档内容由一系列标签元素组成:
XML编写注意事项:
所有XML元素都必须有结束标签
XML标签对大小写敏感
XML必须正确的嵌套
同级标签以缩进对齐
元素名称可以包含字母、数字或其他的字符
元素名称不能以数字或者标点符号开始
元素名称中不能含空格
XML中的转义符列表:
2)解析XML技术:
DOM:
基于XML文档树结构的解析
适用于多次访问的XML文档
特点:比较消耗资源
SAX:
基于事件的解析
适用于大数据量的XML文档
特点:占用资源少,内存消耗小
DOMJ4:
非常优秀的java XML API
性能优异、功能强大
开放源代码
2-1)DOM解析XML:增删改查d
DOM介绍:文档对象模型(Document Object Model):DOM把XML文档映射成一个倒挂的树
代码演示DOM解析XML


package text; import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class XmlText {
//private static Document parse;
public static void main(String[] args) throws Exception {
// text();
//add();
// delete();
//modfiy();
}
/**
* 循环解析XML
*
* @throws ParserConfigurationException
* @throws SAXException
* @throws IOException
*/
public static void text() throws ParserConfigurationException,
SAXException, IOException {
// 创建工厂
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// 1.创建解析器对象
DocumentBuilder builder = factory.newDocumentBuilder();
// 2.创建文档对象
Document document = builder.parse("lbl/NewFile.xml");
// 3.拿到节点集合
NodeList list = document.getElementsByTagName("book");
// 4.遍历集合
for (int i = 0; i < list.getLength(); i++) {
// 拿到每个节点
Element item = (Element) list.item(i);
// 解析每个节点属性的值
String bookid = item.getAttribute("id");
String bookType = item.getAttribute("type");
System.out.println(bookid + "\t" + bookType);
// 解析每个节点的子节点的值
String bookName = item.getElementsByTagName("bookName").item(0)
.getTextContent();
String bookprice = item.getElementsByTagName("bookPrice").item(0)
.getTextContent();
String bookAuthor = item.getElementsByTagName("bookAuthor").item(0)
.getTextContent();
System.out.println(bookName + "\t" + bookprice + "\t" + bookAuthor);
}
} /**
* 添加节点
*
* @throws Exception
*/
public static void add() throws Exception {
// 创建工厂
DocumentBuilderFactory newInstance = DocumentBuilderFactory
.newInstance();
// 创建解析器
DocumentBuilder newDocumentBuilder = newInstance.newDocumentBuilder();
// 创建文档对象
Document document = newDocumentBuilder.parse("lbl/NewFile.xml");
// 伪造节点
Element createElement = document.createElement("book");
// 给节点属性赋值
createElement.setAttribute("id", "004");
createElement.setAttribute("type", "动漫专题");
// 伪造节点的子节点
Element bookName = document.createElement("bookName");
bookName.setTextContent("樱桃小丸子");
Element bookPrice = document.createElement("bookPrice");
bookPrice.setTextContent("20");
Element bookAuthor = document.createElement("bookAuthor");
bookAuthor.setTextContent("无名");
// 将三个节点绑定到一个节点下。变成某一节点的子节点
createElement.appendChild(bookName);
createElement.appendChild(bookPrice);
createElement.appendChild(bookAuthor);
// 把新建的节点,添加到根节点下
document.getElementsByTagName("books").item(0)
.appendChild(createElement);
// 将修改后的文件,重写到硬盘
TransformerFactory transformerFactory = TransformerFactory
.newInstance();
// 创建转换器
Transformer transfromer = transformerFactory.newTransformer();
// 要传入的数据源
Source source = new DOMSource(document);
// 要传入的路径
Result result = new StreamResult("lbl/NewFile.xml");
// 转换方法
transfromer.transform(source, result);
System.out.println("add ok"); }
/**
* 修改节点
*
* @throws Exception
*/
public static void modfiy() throws Exception {
// 创建工厂
DocumentBuilderFactory newInstance = DocumentBuilderFactory
.newInstance();
// 创建解析器
DocumentBuilder newDocumentBuilder = newInstance.newDocumentBuilder();
// 创建文档对象
Document document = newDocumentBuilder.parse("lbl/NewFile.xml");
// 拿到要修改的节点
Element item = (Element) document.getElementsByTagName("book").item(1);
item.getElementsByTagName("bookName").item(0).setTextContent("我是测试xx"); // 将修改后的文件,重写到硬盘
TransformerFactory transformerFactory = TransformerFactory
.newInstance();
// 创建转换器
Transformer transfromer = transformerFactory.newTransformer();
// 要传入的数据源
Source source = new DOMSource(document);
// 要传入的路径
Result result = new StreamResult("lbl/NewFile.xml");
// 转换方法
transfromer.transform(source, result);
System.out.println("add ok");
} /**
* 删除节点
*
* @throws Exception
*/
public static void delete() throws Exception {
// 创建工厂
DocumentBuilderFactory newInstance = DocumentBuilderFactory
.newInstance();
// 创建解析器
DocumentBuilder newDocumentBuilder = newInstance.newDocumentBuilder();
// 创建文档对象
Document document = newDocumentBuilder.parse("lbl/NewFile.xml");
// 拿到要删除的节点
Element item = (Element) document.getElementsByTagName("book").item(2);
document.getElementsByTagName("books").item(0).removeChild(item); // 将修改后的文件,重写到硬盘
TransformerFactory transformerFactory = TransformerFactory
.newInstance();
// 创建转换器
Transformer transfromer = transformerFactory.newTransformer();
// 要传入的数据源
Source source = new DOMSource(document);
// 要传入的路径
Result result = new StreamResult("lbl/NewFile.xml");
// 转换方法
transfromer.transform(source, result);
System.out.println("delete ok");
}
}


2-2)使用SAX与DOM4J解析XML:增删改查读
需要结合DOM4j架包使用:下载链接地址如下:
需要先将架包引用到项目中:
代码演示如下:

import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Dom4jXml {
public static void main(String[] args) throws Exception {
// 读取XML
// reader();
// 添加XML节点
// addXml();
// 修改节点数据
// modfiy();
// modfiy1();
// 删除节点
// delete();
// delete1();
}
/**
* 读取XML文件
*/
public static void reader() throws Exception {
// 创建读取器
SAXReader reader = new SAXReader();
// 读取xml文档
Document read = reader.read("lbl/NewFile.xml");
// 获取根节点
Element rootElement = read.getRootElement();
// 遍历根节点下的子节点信息
for (Object item : rootElement.elements()) {
// 拿到子节点下的值
String text = ((Element) item).element("bookName").getText();
System.out.println(text);
// 拿到当前节点的属性值
System.out.println(((Element) item).attribute("id").getText());
}
}
/**
* 向XML文件添加节点
*/
public static void addXml() throws Exception {
// 创建读取器
SAXReader reader = new SAXReader();
// 读取xml文档
Document read = reader.read("lbl/NewFile.xml");
// 获取根节点
Element rootElement = read.getRootElement();
// 创建要添加的节点
Element createElement = DocumentHelper.createElement("book");
createElement.setAttributeValue("id", "003");
createElement.setAttributeValue("type", "测试数据");
// 创建添加的节点的3个子节点
Element createElement1 = DocumentHelper.createElement("bookName");
createElement1.setText("唔明书");
Element createElement2 = DocumentHelper.createElement("bookPrice");
createElement2.setText("20");
Element createElement3 = DocumentHelper.createElement("bookAuthor");
createElement3.setText("测试");
// 把3个子节点 添加到book节点下
createElement.add(createElement1);
createElement.add(createElement2);
createElement.add(createElement3);
// 把book子节点添加到根节点下
rootElement.add(createElement);
// 重新将XML写入硬盘
OutputStream ou = new FileOutputStream("lbl/NewFile.xml");
Writer wr = new OutputStreamWriter(ou, "utf-8");
read.write(wr);
wr.close();
ou.close();
System.out.println("add ok");
}
/**
* 修改节点信息
*/
public static void modfiy() throws Exception {
// 创建读取器
SAXReader reader = new SAXReader();
// 读取xml文档
Document read = reader.read("lbl/NewFile.xml");
// 获取根节点
Element rootElement = read.getRootElement();
// 拿到要修改的节点
for (Object element : rootElement.elements()) {
if (((Element) element).attribute("id").getText().equals("003")) {
((Element) element).element("bookName").setText("数据测试!");
break;
}
}
/**
* ((Element) element).element("bookName").setName("数据测试!");修改节点name名称
*/
// 重新将XML写入硬盘
OutputStream ou = new FileOutputStream("lbl/NewFile.xml");
Writer wr = new OutputStreamWriter(ou, "utf-8");
read.write(wr);
wr.close();
ou.close();
System.out.println("modfiy ok");
}
/**
* 修改节点信息方案二 Text
*/
public static void modfiy1() throws Exception {
// 创建读取器
SAXReader reader = new SAXReader();
// 读取xml文档
Document read = reader.read("lbl/NewFile.xml");
// 获取根节点
Element rootElement = read.getRootElement();
// 拿到要修改的节点---方式二 Text true
@SuppressWarnings("unchecked")
List<Object> attributes = (rootElement.elements());
Element ment = (Element) attributes.get(1);
ment.element("bookName").setText("青年测试");
// 重新将XML写入硬盘
OutputStream ou = new FileOutputStream("lbl/NewFile.xml");
Writer wr = new OutputStreamWriter(ou, "utf-8");
read.write(wr);
wr.close();
ou.close();
System.out.println("modfiy ok");
} /**
* 删除节点信息
*/
public static void delete() throws Exception {
// 创建读取器
SAXReader reader = new SAXReader();
// 读取xml文档
Document read = reader.read("lbl/NewFile.xml");
// 获取根节点
Element rootElement = read.getRootElement();
// 拿到要修改的节点
for (Object element : rootElement.elements()) {
if (((Element) element).attribute("id").getText().equals("003")) {
rootElement.remove(((Element) element));
break;
}
}
// 重新将XML写入硬盘
OutputStream ou = new FileOutputStream("lbl/NewFile.xml");
Writer wr = new OutputStreamWriter(ou, "utf-8");
read.write(wr);
wr.close();
ou.close();
System.out.println("delete ok");
} /**
* 删除节点方式二 Text true
*/
public static void delete1() throws Exception {
// 创建读取器
SAXReader reader = new SAXReader();
// 读取xml文档
Document read = reader.read("lbl/NewFile.xml");
// 获取根节点
Element rootElement = read.getRootElement();
// 拿到要修改的节点---方式二 Text true
@SuppressWarnings("unchecked")
List<Object> attributes = (rootElement.elements());
Element ment = (Element) attributes.get(1);
rootElement.remove(ment);
// 重新将XML写入硬盘
OutputStream ou = new FileOutputStream("lbl/NewFile.xml");
Writer wr = new OutputStreamWriter(ou, "utf-8");
read.write(wr);
wr.close();
ou.close();
System.out.println("delete ok"); }
}

1)有关XML简介
XML(EXtensible Markup Language)可扩展标记语言
特点:XML与操作系统、编程语言的开发平台无关
实现不同系统之间的数据交换
作用:数据交换、配置应用程序和网站
大致文档结构:
XML文档内容由一系列标签元素组成:
XML编写注意事项:
所有XML元素都必须有结束标签
XML标签对大小写敏感
XML必须正确的嵌套
同级标签以缩进对齐
元素名称可以包含字母、数字或其他的字符
元素名称不能以数字或者标点符号开始
元素名称中不能含空格
XML中的转义符列表:
2)解析XML技术:
DOM:
基于XML文档树结构的解析
适用于多次访问的XML文档
特点:比较消耗资源
SAX:
基于事件的解析
适用于大数据量的XML文档
特点:占用资源少,内存消耗小
DOMJ4:
非常优秀的java XML API
性能优异、功能强大
开放源代码
2-1)DOM解析XML:增删改查d
DOM介绍:文档对象模型(Document Object Model):DOM把XML文档映射成一个倒挂的树
代码演示DOM解析XML


package text; import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class XmlText {
//private static Document parse;
public static void main(String[] args) throws Exception {
// text();
//add();
// delete();
//modfiy();
}
/**
* 循环解析XML
*
* @throws ParserConfigurationException
* @throws SAXException
* @throws IOException
*/
public static void text() throws ParserConfigurationException,
SAXException, IOException {
// 创建工厂
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// 1.创建解析器对象
DocumentBuilder builder = factory.newDocumentBuilder();
// 2.创建文档对象
Document document = builder.parse("lbl/NewFile.xml");
// 3.拿到节点集合
NodeList list = document.getElementsByTagName("book");
// 4.遍历集合
for (int i = 0; i < list.getLength(); i++) {
// 拿到每个节点
Element item = (Element) list.item(i);
// 解析每个节点属性的值
String bookid = item.getAttribute("id");
String bookType = item.getAttribute("type");
System.out.println(bookid + "\t" + bookType);
// 解析每个节点的子节点的值
String bookName = item.getElementsByTagName("bookName").item(0)
.getTextContent();
String bookprice = item.getElementsByTagName("bookPrice").item(0)
.getTextContent();
String bookAuthor = item.getElementsByTagName("bookAuthor").item(0)
.getTextContent();
System.out.println(bookName + "\t" + bookprice + "\t" + bookAuthor);
}
} /**
* 添加节点
*
* @throws Exception
*/
public static void add() throws Exception {
// 创建工厂
DocumentBuilderFactory newInstance = DocumentBuilderFactory
.newInstance();
// 创建解析器
DocumentBuilder newDocumentBuilder = newInstance.newDocumentBuilder();
// 创建文档对象
Document document = newDocumentBuilder.parse("lbl/NewFile.xml");
// 伪造节点
Element createElement = document.createElement("book");
// 给节点属性赋值
createElement.setAttribute("id", "004");
createElement.setAttribute("type", "动漫专题");
// 伪造节点的子节点
Element bookName = document.createElement("bookName");
bookName.setTextContent("樱桃小丸子");
Element bookPrice = document.createElement("bookPrice");
bookPrice.setTextContent("20");
Element bookAuthor = document.createElement("bookAuthor");
bookAuthor.setTextContent("无名");
// 将三个节点绑定到一个节点下。变成某一节点的子节点
createElement.appendChild(bookName);
createElement.appendChild(bookPrice);
createElement.appendChild(bookAuthor);
// 把新建的节点,添加到根节点下
document.getElementsByTagName("books").item(0)
.appendChild(createElement);
// 将修改后的文件,重写到硬盘
TransformerFactory transformerFactory = TransformerFactory
.newInstance();
// 创建转换器
Transformer transfromer = transformerFactory.newTransformer();
// 要传入的数据源
Source source = new DOMSource(document);
// 要传入的路径
Result result = new StreamResult("lbl/NewFile.xml");
// 转换方法
transfromer.transform(source, result);
System.out.println("add ok"); }
/**
* 修改节点
*
* @throws Exception
*/
public static void modfiy() throws Exception {
// 创建工厂
DocumentBuilderFactory newInstance = DocumentBuilderFactory
.newInstance();
// 创建解析器
DocumentBuilder newDocumentBuilder = newInstance.newDocumentBuilder();
// 创建文档对象
Document document = newDocumentBuilder.parse("lbl/NewFile.xml");
// 拿到要修改的节点
Element item = (Element) document.getElementsByTagName("book").item(1);
item.getElementsByTagName("bookName").item(0).setTextContent("我是测试xx"); // 将修改后的文件,重写到硬盘
TransformerFactory transformerFactory = TransformerFactory
.newInstance();
// 创建转换器
Transformer transfromer = transformerFactory.newTransformer();
// 要传入的数据源
Source source = new DOMSource(document);
// 要传入的路径
Result result = new StreamResult("lbl/NewFile.xml");
// 转换方法
transfromer.transform(source, result);
System.out.println("add ok");
} /**
* 删除节点
*
* @throws Exception
*/
public static void delete() throws Exception {
// 创建工厂
DocumentBuilderFactory newInstance = DocumentBuilderFactory
.newInstance();
// 创建解析器
DocumentBuilder newDocumentBuilder = newInstance.newDocumentBuilder();
// 创建文档对象
Document document = newDocumentBuilder.parse("lbl/NewFile.xml");
// 拿到要删除的节点
Element item = (Element) document.getElementsByTagName("book").item(2);
document.getElementsByTagName("books").item(0).removeChild(item); // 将修改后的文件,重写到硬盘
TransformerFactory transformerFactory = TransformerFactory
.newInstance();
// 创建转换器
Transformer transfromer = transformerFactory.newTransformer();
// 要传入的数据源
Source source = new DOMSource(document);
// 要传入的路径
Result result = new StreamResult("lbl/NewFile.xml");
// 转换方法
transfromer.transform(source, result);
System.out.println("delete ok");
}
}


2-2)使用SAX与DOM4J解析XML:增删改查读
需要结合DOM4j架包使用:下载链接地址如下:
需要先将架包引用到项目中:
代码演示如下:

import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Dom4jXml {
public static void main(String[] args) throws Exception {
// 读取XML
// reader();
// 添加XML节点
// addXml();
// 修改节点数据
// modfiy();
// modfiy1();
// 删除节点
// delete();
// delete1();
}
/**
* 读取XML文件
*/
public static void reader() throws Exception {
// 创建读取器
SAXReader reader = new SAXReader();
// 读取xml文档
Document read = reader.read("lbl/NewFile.xml");
// 获取根节点
Element rootElement = read.getRootElement();
// 遍历根节点下的子节点信息
for (Object item : rootElement.elements()) {
// 拿到子节点下的值
String text = ((Element) item).element("bookName").getText();
System.out.println(text);
// 拿到当前节点的属性值
System.out.println(((Element) item).attribute("id").getText());
}
}
/**
* 向XML文件添加节点
*/
public static void addXml() throws Exception {
// 创建读取器
SAXReader reader = new SAXReader();
// 读取xml文档
Document read = reader.read("lbl/NewFile.xml");
// 获取根节点
Element rootElement = read.getRootElement();
// 创建要添加的节点
Element createElement = DocumentHelper.createElement("book");
createElement.setAttributeValue("id", "003");
createElement.setAttributeValue("type", "测试数据");
// 创建添加的节点的3个子节点
Element createElement1 = DocumentHelper.createElement("bookName");
createElement1.setText("唔明书");
Element createElement2 = DocumentHelper.createElement("bookPrice");
createElement2.setText("20");
Element createElement3 = DocumentHelper.createElement("bookAuthor");
createElement3.setText("测试");
// 把3个子节点 添加到book节点下
createElement.add(createElement1);
createElement.add(createElement2);
createElement.add(createElement3);
// 把book子节点添加到根节点下
rootElement.add(createElement);
// 重新将XML写入硬盘
OutputStream ou = new FileOutputStream("lbl/NewFile.xml");
Writer wr = new OutputStreamWriter(ou, "utf-8");
read.write(wr);
wr.close();
ou.close();
System.out.println("add ok");
}
/**
* 修改节点信息
*/
public static void modfiy() throws Exception {
// 创建读取器
SAXReader reader = new SAXReader();
// 读取xml文档
Document read = reader.read("lbl/NewFile.xml");
// 获取根节点
Element rootElement = read.getRootElement();
// 拿到要修改的节点
for (Object element : rootElement.elements()) {
if (((Element) element).attribute("id").getText().equals("003")) {
((Element) element).element("bookName").setText("数据测试!");
break;
}
}
/**
* ((Element) element).element("bookName").setName("数据测试!");修改节点name名称
*/
// 重新将XML写入硬盘
OutputStream ou = new FileOutputStream("lbl/NewFile.xml");
Writer wr = new OutputStreamWriter(ou, "utf-8");
read.write(wr);
wr.close();
ou.close();
System.out.println("modfiy ok");
}
/**
* 修改节点信息方案二 Text
*/
public static void modfiy1() throws Exception {
// 创建读取器
SAXReader reader = new SAXReader();
// 读取xml文档
Document read = reader.read("lbl/NewFile.xml");
// 获取根节点
Element rootElement = read.getRootElement();
// 拿到要修改的节点---方式二 Text true
@SuppressWarnings("unchecked")
List<Object> attributes = (rootElement.elements());
Element ment = (Element) attributes.get(1);
ment.element("bookName").setText("青年测试");
// 重新将XML写入硬盘
OutputStream ou = new FileOutputStream("lbl/NewFile.xml");
Writer wr = new OutputStreamWriter(ou, "utf-8");
read.write(wr);
wr.close();
ou.close();
System.out.println("modfiy ok");
} /**
* 删除节点信息
*/
public static void delete() throws Exception {
// 创建读取器
SAXReader reader = new SAXReader();
// 读取xml文档
Document read = reader.read("lbl/NewFile.xml");
// 获取根节点
Element rootElement = read.getRootElement();
// 拿到要修改的节点
for (Object element : rootElement.elements()) {
if (((Element) element).attribute("id").getText().equals("003")) {
rootElement.remove(((Element) element));
break;
}
}
// 重新将XML写入硬盘
OutputStream ou = new FileOutputStream("lbl/NewFile.xml");
Writer wr = new OutputStreamWriter(ou, "utf-8");
read.write(wr);
wr.close();
ou.close();
System.out.println("delete ok");
} /**
* 删除节点方式二 Text true
*/
public static void delete1() throws Exception {
// 创建读取器
SAXReader reader = new SAXReader();
// 读取xml文档
Document read = reader.read("lbl/NewFile.xml");
// 获取根节点
Element rootElement = read.getRootElement();
// 拿到要修改的节点---方式二 Text true
@SuppressWarnings("unchecked")
List<Object> attributes = (rootElement.elements());
Element ment = (Element) attributes.get(1);
rootElement.remove(ment);
// 重新将XML写入硬盘
OutputStream ou = new FileOutputStream("lbl/NewFile.xml");
Writer wr = new OutputStreamWriter(ou, "utf-8");
read.write(wr);
wr.close();
ou.close();
System.out.println("delete ok"); }
}

Java 持久化操作之 --XML的更多相关文章
- Java 持久化操作
持久化就是将内存中的数据保存起来,使之可以长期存在. 在Java中 可以做到持久化有很多种方法. 其中有: 1. 堵塞型IO,也就是我们经常说的io流: 2. 非堵塞型IO,通常称为New IO.也就 ...
- Java 持久化操作之 --io流与序列化
1)File类操作文件的属性 1.File类的常用方法 1. 文件的绝对完整路径:getAbsolutePath() 文件名:getName() 文件相对路径:getPath() 文件的上一级目录:g ...
- Java文件操作①——XML文件的读取
一.邂逅XML 文件种类是丰富多彩的,XML作为众多文件类型的一种,经常被用于数据存储和传输.所以XML在现今应用程序中是非常流行的.本文主要讲Java解析和生成XML.用于不同平台.不同设备间的数据 ...
- Hibernate 系列 03 - 使用Hibernate完成持久化操作
引导目录: Hibernate 系列教程 目录 康姆昂,北鼻,来此狗.动次打次,Hibernate继续走起. 目录: 使用Hibernate实现按主键查询 使用Hibernate实现数据库的增.删.改 ...
- python数据的存储和持久化操作
Python的数据持久化操作主要是六类:普通文件.DBM文件.Pickled对象存储.shelve对象存储.对象数据库存储.关系数据库存储. 普通文件不解释了,DBM就是把字符串的键值对存储在文件里: ...
- HDFS的Java客户端操作代码(HDFS的查看、创建)
1.HDFS的put上传文件操作的java代码: package Hdfs; import java.io.FileInputStream; import java.io.FileNotFoundEx ...
- Java文件操作源码大全
Java文件操作源码大全 1.创建文件夹 52.创建文件 53.删除文件 54.删除文件夹 65.删除一个文件下夹所有的文件夹 76.清空文件夹 87.读取文件 88.写入文件 99.写入随机文件 9 ...
- Java路径操作具体解释
1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或文件夹在硬盘上真正的路径.(URL和物理路径)比如: C:\xyz\test.txt 代表了test.txt文件的绝对路径.http://w ...
- Java数据解析之XML
文章大纲 一.XML解析介绍二.Java中XML解析介绍三.XML解析实战四.项目源码下载 一.XML解析介绍 最基础的XML解析方式有DOM和SAX,DOM和SAX是与平台无关的官方解析方式 ...
随机推荐
- java poi导入Excel(个人代码)
案例使用的框架:jsp+spring+mybaties <form id="importForm" name="importForm" method=&q ...
- webstorm2018版安装-破解
安装完成后到下面网址下载破解补丁 网址:http://idea.lanyus.com/ 修改路径 修改同目录下的 WebStorm.exe.vmoptions 和WebStorm64.exe.vmop ...
- abap函数返回结构体类型
1: 定义一个结构体 T-CODE se11 2: 选择 structure 3:输入相应的字段 4:激活 5:创建一个function module zfm_return_table,返回类型为 ...
- MyBatis——一对多、一对一关系,collection、association
实体类两个: user类: package com.pojo; /** *用户 */ public class User{ private int userId;//用户ID private Stri ...
- Mac搭建PHP+rabbitMQ环境
RabbitMQ是一个在AMQP基础上实现的企业级消息系统.何谓消息系统,就是消息队列系统,消息队列是“”消费-生产者模型“”的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取或者订阅 ...
- Spring boot 整合hive-jdbc导致无法启动的问题
使用Spring boot整合Hive,在启动Spring boot项目时,报出异常: 经过排查,是maven的包冲突引起的,具体做法,排除:jetty-all.hive-shims依赖包.对应的po ...
- js多个异步请求,按顺序执行next
在js里面,偶尔会遇见需要多个异步按照顺序执行请求,又不想多层嵌套,,这里和promise.all的区别在于,promise或者Jquery里面的$.when 是同时发送多个请求,一起返回,发出去的顺 ...
- SQL数据库存储过程
添加修改 create PROCEDURE sp_insert_1(pid int,pname varchar(200),page varchar(200),pscore int,out code i ...
- 从零开始一起学习SLAM | 学习SLAM到底需要学什么?
SLAM涉及的知识面很广,我简单总结了 “SLAM知识树” 如下所示: (公众号菜单栏回复 “树” 可获得清晰版) 可以看到涉及的知识面还是比较广的.这里放出一张SLAM圈子里喜闻乐见的表达悲喜交加心 ...
- 根据异常自定义处理逻辑(【附】java异常处理规范)
▄︻┻┳═一『异常捕获系列』Agenda: ▄︻┻┳═一有关于异常捕获点滴,plus我也揭揭java的短 ▄︻┻┳═一根据异常自定义处理逻辑([附]java异常处理规范) ▄︻┻┳═一利用自定义异常来 ...