您的位置:首页 > 编程语言 > Java开发

Java xml 图书管理系统-BookUtil类

2017-04-05 10:07 405 查看
返回目录

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

public class BookUtil {

/**
* 功能:根据书籍名称修改书籍
* @param book 待修改的书籍
* @return 修改是否成功
*/
@SuppressWarnings("unchecked")
public boolean udpateBookByName(Book book){

boolean bn=false;
//获取document对象
Document document=getDocument();
//获取根元素
Element rootElement=document.getRootElement();
//获取所有的书籍
List<Element> list=rootElement.elements();
//遍历list集合
for(Element bookElement:list){

//获取书籍名称
String name=bookElement.elementText("title");
//判断修改的是哪一本书
if(name.equals(book.getBookName())){
//修改书籍编号
bookElement.attribute("category").setValue(book.getBookId());
//设置书籍作者
bookElement.element("author").setText(book.getBookAuthor());
//设置书籍价格
bookElement.element("price").setText(String.valueOf(book.getBookPrice()));
//设置书籍出版年月
bookElement.element("year").setText(new SimpleDateFormat("yyyy年MM月dd日").format(book.getBookYear()));

saveBook(document);
bn=true;

}
}
return bn;
}

/**
* 功能:根据书籍编号修改书籍
* @param book 待修改的书籍
* @return 修改是否成功
*/
@SuppressWarnings("unchecked")
public boolean updateBookById(Book book){
boolean bn=false;
//获取document对象
Document document=getDocument();
//获取根元素
Element rootElement=document.getRootElement();
//获取所有的书籍
List<Element> list=rootElement.elements();
//遍历list集合
Iterator<Element> it=list.iterator();
while(it.hasNext()){

Element bookElement=it.next();
//获取书籍编号
String id=bookElement.attributeValue("category");
//判断修改的是那本书
if(id.equals(book.getBookId())){

//设置书籍名称
bookElement.element("title").setText(book.getBookName());
//设置书籍作者
bookElement.element("author").setText(book.getBookAuthor());
//设置书籍价格
bookElement.element("price").setText(String.valueOf(book.getBookPrice()));
//设置书籍出版年月
bookElement.element("year").setText(new SimpleDateFormat("yyyy年MM月dd日").format(book.getBookYear()));

bn=true;
saveBook(document);
}
}
return bn;
}
/**
* 功能:查询所有书籍
*/
@SuppressWarnings("unchecked")
public void readAllBook(){

//获取document对象
Document document=getDocument();
//获取根元素
Element rootElement=document.getRootElement();
//获取所有的书籍
List<Element> list=rootElement.elements();
//遍历集合
Iterator<Element> it=list.iterator();
while(it.hasNext()){

Element bookElement=it.next();
System.out.println("-----------------");
System.out.println("书籍编号:"+bookElement.attributeValue("category"));
System.out.println("书籍名称:"+bookElement.elementText("title"));
System.out.println("书籍作者:"+bookElement.elementText("author"));
System.out.println("书籍价格:"+Integer.parseInt(bookElement.elementText("price")));
System.out.println("书籍出版年月:"+bookElement.elementText("year"));

}
}
/**
* 功能:根据书籍作者查询书籍
* @param author 待查询书籍的作者
* @return 查询到的书籍
*/
@SuppressWarnings("unchecked")
public List<Book> readBookByAuthor(String author){

List<Book> li=new ArrayList<Book>();
//获取document
Document document=getDocument();
//获取根元素
Element rootElement=document.getRootElement();
//获取所有的书籍
List<Element> list=rootElement.elements();
//遍历list集合
Iterator<Element> it=list.iterator();

while(it.hasNext()){

Element bookElement=it.next();
//获取书籍作者
String bookAuthor=bookElement.elementText("author");
//判断书籍作者是否存在
if(bookAuthor.equals(author)){

Book book=new Book();
//设置书籍编号
book.setBookId(bookElement.attributeValue("category"));
//设置书籍名称
book.setBookName(bookElement.elementText("title"));
//设置书籍作者
book.setBookAuthor(bookAuthor);
//设置书籍价格
book.setBookPrice(Integer.parseInt(bookElement.elementText("price")));

try {
//设置书籍出版年月
book.setBookYear(new SimpleDateFormat("yyyy年MM月dd日").parse(bookElement.elementText("year")));
} catch (ParseException e) {
e.printStackTrace();
}

li.add(book);

}
}
return li;
}
/**
* 功能:根据书籍名称查询书籍
* @param name 待查询的书籍名称
* @return 查询的书籍
*/
@SuppressWarnings("unchecked")
public Book readBookByName(String name){
Book book=null;
//获取document对象
Document document=getDocument();
//获取根元素
Element rootElement=document.getRootElement();
//获取所有的书籍
List<Element> list=rootElement.elements();
//遍历集合
Iterator<Element> it=list.iterator();
while(it.hasNext()){

Element bookElement=it.next();
//获取书籍名称
String bookName=bookElement.elementText("title");
//判断书籍是否存在
if(bookName.equals(name)){
book=new Book();
//设置书籍编号
book.setBookId(bookElement.attributeValue("category"));
//设置书籍名称
book.setBookName(bookName);
//设置书籍作者
book.setBookAuthor(bookElement.elementText("author"));
//设置书籍价格
book.setBookPrice(Integer.parseInt(bookElement.elementText("price")));

try {
//设置书籍出版年月
book.setBookYear(new SimpleDateFormat("yyyy年MM月dd日").parse(bookElement.elementText("year")));
} catch (ParseException e) {
e.printStackTrace();
}

}
}
return book;
}
/**
* 功能:根据书籍编号查询书籍
* @param id 待查询的书籍编号
* @return 查询到的书籍
*/
@SuppressWarnings("unchecked")
public Book readerBookById(String id){
Book book=null;
//获取document对象
Document document=getDocument();
//获取根元素
Element rootEelement=document.getRootElement();
//获取所有的书籍
List<Element> list=rootEelement.elements();
//遍历所有书籍
Iterator<Element> it=list.iterator();
while(it.hasNext()){

Element bookElement=it.next();
//获取书籍编号
String bookId=bookElement.attributeValue("category");
//判断书籍是否存在
if(bookId.equals(id)){

book=new Book();
//设置书籍编号
book.setBookId(bookId);
//设置书籍名称
book.setBookName(bookElement.elementText("title"));
//设置书籍作者
book.setBookAuthor(bookElement.elementText("author"));
//设置书籍价格
book.setBookPrice(Integer.parseInt(bookElement.elementText("price")));

try {
//设置书籍出版年月
book.setBookYear(new SimpleDateFormat("yyyy年MM月dd日").parse(bookElement.elementText("year")));
} catch (ParseException e) {
e.printStackTrace();
}

}
}
return book;
}
/**
* 功能:删除所有书籍
* @return 删除是否成功
*/
@SuppressWarnings("unchecked")
public boolean deleteAllBook(){
boolean bn=false;
//获取document对象
Document document=getDocument();
//获取根元素
Element rootElement=document.getRootElement();
//获取所有的书籍
List<Element> list=rootElement.elements();
//遍历list集合
Iterator<Element> it=list.iterator();
while(it.hasNext()){

Element bookElement=it.next();
rootElement.remove(bookElement);
bn=true;

}
saveBook(document);
return bn;
}
/**
* 功能:根据书籍作者删除书籍
* @param author 待删除书籍作者
* @return 删除是否成功
*/
@SuppressWarnings("unchecked")
public boolean deleteBookByAuthor(String author){
boolean bn=false;
//获取document对象
Document document=getDocument();
//获取根元素
Element rootElement=document.getRootElement();
//获取所有的书籍
List<Element> list=rootElement.elements();
//遍历list集合
Iterator<Element> it=list.iterator();
while(it.hasNext()){

Element bookElement=it.next();
//获取书籍名称
String bookAuthor=bookElement.elementText("author");
//判断书籍名称是否存在
if(bookAuthor.equals(author)){

rootElement.remove(bookElement);

saveBook(document);

bn=true;
}
}
return bn;
}
/**
* 功能:根据书籍名称删除书籍
* @param name 待删除的书籍 名称
* @return 删除是否成功
*/
@SuppressWarnings("unchecked")
public boolean deleteBookByName(String name){
boolean bn=false;
//获取document对象
Document document=getDocument();
//获取根元素
Element rootElement=document.getRootElement();
//获取所有的书籍
List<Element> list=rootElement.elements();
//遍历list集合
Iterator<Element> it=list.iterator();
while(it.hasNext()){

Element bookElement=it.next();
//获取书籍名称
String bookName=bookElement.elementText("title");
//判断书籍名称是否存在
if(bookName.equals(name)){

rootElement.remove(bookElement);

saveBook(document);

bn=true;
}
}
return bn;
}
/**
* 功能:根据书籍编号删除书籍
* @param id 待删除的书籍编号
* @return 删除是否成功
*/
@SuppressWarnings("unchecked")
public boolean deleteBookById(String id){
boolean bn=false;
//获取document对象
Document document=getDocument();
//获取根元素
Element rootElement=document.getRootElement();
//获取所有的书籍
List<Element> list=rootElement.elements();
//遍历所有的书籍
Iterator<Element> it=list.iterator();
while(it.hasNext()){

Element bookElement=it.next();
//获取书籍编号
String bookId=bookElement.attributeValue("category");
//判断书籍编号是否存在
if(bookId.equals(id)){

rootElement.remove(bookElement);
bn=true;
//保存
saveBook(document);
}
}
return bn;
}
/**
* 功能:添加书籍
* @param bo 待添加的书籍
* @return 添加是否成功
*/
public boolean addBook(Book bo){
boolean bn=false;
//获取document对象
Document document=getDocument();
//获取根元素
Element rootElement=document.getRootElement();
//添加书籍元素
Element bookEelement=rootElement.addElement("book");
//添加属性 并且设置属性值
bookEelement.addAttribute("category", bo.getBookId());
//添加书籍名称 并且设置文本
bookEelement.addElement("title").setText(bo.getBookName());
//添加书籍作者 并且设置文本
bookEelement.addElement("author").setText(bo.getBookAuthor());
//添加书籍价格 并且设置文本
bookEelement.addElement("price").setText(String.valueOf(bo.getBookPrice()));
//添加书籍出版日期 并且设置文本
bookEelement.addElement("year").setText(new SimpleDateFormat("yyyy年MM月dd日").format(bo.getBookYear()));
//保存
saveBook(document);
bn=true;

return bn;
}
/**
* 功能:保存书籍
* @param document 呆保存的document对象
*/
public void saveBook(Document document){
OutputStream out=null;
XMLWriter xw=null;

try {
//建立字节流
out=new FileOutputStream(new File("Books.xml"));
//建立格式器
OutputFormat of=OutputFormat.createPrettyPrint();

xw=new XMLWriter(out, of);

xw.write(document);

xw.flush();
} catch (FileNotFoundException e) {

e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{

if(out!=null){

try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}

if(xw!=null){

try {
xw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

}
/**
* 功能:获取document对象
* @return 获取的document对象
*/
public Document getDocument(){
Document document=null;

//建立解析器
SAXReader sax=new SAXReader();

try {
//获取document对象
document=sax.read(new File("Books.xml"));
} catch (DocumentException e) {
e.printStackTrace();
}

return document;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java