「javaxml存储」java写xml

博主:adminadmin 2022-11-29 08:54:07 49

今天给各位分享javaxml存储的知识,其中也会对java写xml进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

Java编写图书管理系统,使用XML存储

import java.io.File;

import java.io.FileOutputStream;

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;

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 Book {

    private int no;

    private String name;

    private double value;

    public Book() {

    }

    public Book(int no, String name, double value) {

        this.no = no;

        this.name = name;

        this.value = value;

    }

    public double getValue() {

        return value;

    }

    public void setValue(double value) {

        this.value = value;

    }

    public String getName() {

        return name;

    }

    public void setName(String name) {

        this.name = name;

    }

    public int getNo() {

        return no;

    }

    public void setNo(int no) {

        this.no = no;

    }

}

class BookList {

    private ListBook bookList;

    public BookList() {

        bookList = readXML();

    }

    public long getCount() {

        return bookList.size();

    }

    public ListBook getBookList() {

        return bookList;

    }

    public void setBookList(ListBook bookList) {

        this.bookList = bookList;

    }

    public void add(Book book) {

        bookList.add(book);

    }

    public boolean delete(String name) {

        Book book = query(name);

        return bookList.remove(book);

    }

    public void update(Book bookBefore, Book bookAfter) {

        bookList.remove(bookBefore);

        add(bookAfter);

    }

    public Book query(String name) {

        Book temp = null;

        for (Book book : bookList) {

            if (book.getName().equals(name)) {

                temp = book;

            }

        }

        return temp;

    }

    public synchronized void writeXmlDocument(Book book) {

        try {

            File file = new File("D:\\book.xml");

            Document document = null;

            Element root = null;

            if (!file.exists()) {

                // 新建student.xml文件并新增内容

                document = DocumentHelper.createDocument();

                root = document.addElement("Books");//添加根节点   

            } else {

                SAXReader saxReader = new SAXReader();

                document = saxReader.read(file);

                root = document.getRootElement();//获得根节点

            }

            Element secondRoot = root.addElement("Book");//二级节点   

            //为二级节点添加属性,属性值为对应属性的值   

            secondRoot.addElement("no").setText(book.getNo() + "");

            secondRoot.addElement("name").setText(book.getName() + "");

            secondRoot.addElement("value").setText(book.getValue() + "");

            OutputFormat format = OutputFormat.createPrettyPrint();

            format.setEncoding("GBK");

            XMLWriter writer = new XMLWriter(new FileOutputStream("D:\\book.xml"), format);

            writer.write(document);

            writer.close();

            document.clearContent();

        } catch (Exception e) {

            e.printStackTrace();

        }

    }

    public synchronized ListBook readXML() {

        ListBook list = new ArrayListBook();//创建list集合   

        File file = null;

        try {

            file = new File("D:\\book.xml");//读取文件   

            if (file.exists()) {

                SAXReader saxReader = new SAXReader();

                Document document = saxReader.read(file);

                List nodeList = document.selectNodes("Books/Book");

                for (int i = 0; i  nodeList.size(); i++) {

                    Element el = (Element) nodeList.get(i);

                    Book book = new Book();

                    book.setNo(Integer.parseInt(el.elementText("no")));

                    book.setName(el.elementText("name"));

                    book.setValue(Double.parseDouble(el.elementText("value")));

                    list.add(book);

                }

            }

        } catch (Exception e) {

            e.printStackTrace();

        }

        return list;

    }

}

class Test {

    public static void main(String args[]) {

        BookList bl = new BookList();

        boolean bBreak = true;

        while (bBreak) {

            System.out.println("请输入操作代码:");

            System.out.println("1:添加 2:删除 3:修改 4:查询 5:书籍统计 6:退出");

            Scanner sc = new Scanner(System.in);

            int code = sc.nextInt();

            if (code == 1) {

                System.out.println("请输入编号");

                int no = sc.nextInt();

                System.out.println("请输入书名");

                String name = sc.next();

                System.out.println("请输入售价");

                double value = sc.nextDouble();

                Book book = new Book(no, name, value);

                bl.add(book);

                bl.writeXmlDocument(book);

            } else if (code == 2) {

                System.out.println("请输入要删除的书籍名");

                String name = sc.next();

                if (bl.delete(name)) {

                    System.out.println("删除成功");

                } else {

                    System.out.println("书籍不存在");

                }

            } else if (code == 3) {

                System.out.println("请输入要修改的书籍名");

                String name = sc.next();

                Book bookBefore = bl.query(name);

                System.out.println("请输入新的编号");

                int newNo = sc.nextInt();

                System.out.println("请输入新的书名");

                String newName = sc.next();

                System.out.println("请输入新的售价");

                double value = sc.nextDouble();

                Book bookAfter = new Book(newNo, newName, value);

                bl.update(bookBefore, bookAfter);

            } else if (code == 4) {

                System.out.println("请输入要查询的书籍名");

                String name = sc.next();

                Book book = bl.query(name);

                System.out.println("编号:" + book.getNo() + " 书名:" + book.getName() + " 售价:" + book.getValue());

            } else if (code == 5) {

                ListBook list = bl.getBookList();

                System.out.println("总书籍数:" + bl.getCount());

                for (Book book : list) {

                    System.out.println("编号:" + book.getNo() + " 书名:" + book.getName() + " 售价:" + book.getValue());

                }

            } else if (code == 6) {

                bBreak = false;

            }

        }

    }

}

jar 包  dom4j.jar  jaxen-1.1.4.jar

java可以用xml存储数据吗?

可以到是可以

但是如果存储的是正儿八经的数据的话

建议你用ACCESS

XML用来做配置文件倒是蛮合适的

在JAVA的maven项目中怎么对xml文件进行保存?

你加我企鹅

八度重阳在旧山 ,

九九中延九万年 。

三征不起时贤议 ,

二十三家同愿识 。

三春并向指下生 ,

一捧自筑珠丘陵 。

七里青滩映碧层 ,

二年辜负两京春 。

二年疏懒共江潭 ,

xml在java项目中起到的作用具体是什么?

java项目中,xml文件一般都是用来存储一些配置信息

一般的编程, 多数用来存储配置信息 . 拿JDBC来说,可以把数据库连接字符串写到xml,如果要修改数据源,只需要改xml就可以了,没必要再去重新编译java文件,而且,这些配置信息放在一起,别的人来读你写的代码的时候,就方便了很多

框架中的xml , 除了配置信息 , 还可以写一些对应关系,其实也是一种配置信息 .拿struts来说,xml配置的是页面url对应后台java类(action)的关系,在配置和修改的时候,只需要改一个xml文件就可以了,没必要一个个的查找java代码

java项目完成之后,每个模块应该都是独立的,模块之间的关系都可以使用xml来进行维护,spring就是这样的一个框架

一个好的项目,需要有良好的可拓展性,如果把所有的逻辑关系还有配置信息都写入代码中,会使程序的可拓展性变差,为了解决这个问题,xml就可以对整个项目进行调度(spring)

还有使用xml作为数据储存,不过用起来很少,多数还是用来存放配置信息

关于javaxml存储和java写xml的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-29,除非注明,否则均为首码项目网原创文章,转载请注明出处。