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 xml 图书管理系统-Book类
- Java xml 图书管理系统-目录
- Java xml 图书管理系统-XML
- Java xml 图书管理系统-Test类
- Java+MySQL图书管理系统
- 图书管理系统(java)
- Java大作业----三层的架构图书管理系统
- java web 项目 图书管理系统的设计与实现
- java系统-图书管理系统
- 关于Java小项目——图书管理系统的总结
- Java之------单机版书店管理系统(设计思想和设计模式系列四)图书模块
- 我是个在校生,现在想用java作为前台代码,连接到SQL server数据库上去,项目是;图书管理系统,现在没有好的java源代码,各位大侠能不能帮个忙?
- Java图书管理系统-项目编写
- java图书系统管理
- java-图书管理系统
- java-图书管理系统
- Java图书管理系统总结分享
- JAVA 面向对象编程开发--------初学者---------------------彩票系统----图书管理系统
- Java实现简单的图书管理系统
- 数据结构(JAVA版本)练习之集合 简易图书管理系统