⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queryimpl.java

📁 以Java结合rmi开发
💻 JAVA
字号:
//QueryImpl.java

import java.rmi.*;
import java.rmi.server.*;
import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.apache.crimson.tree.XmlDocument;

public class QueryImpl extends UnicastRemoteObject implements QueryInterface
{
 public QueryImpl() throws RemoteException
 {
  super();
 }

 private Document getDocument()
 {
  DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  DocumentBuilder db = null;
  try {
     db = dbf.newDocumentBuilder();
  }
  catch (ParserConfigurationException pce) {
     pce.printStackTrace(); //出异常时输出异常信息,然后退出,下同
     return null;
  }

  Document doc = null;
  try {
     doc = db.parse("SCORE.xml");
  }
  catch (Exception dom) {
     dom.printStackTrace();
     return null;
  }
  return doc;
 }

 private String getValue(NodeList n)
 {
  if (n.getLength() == 1){
   Element e = (Element) n.item(0);
   Text t = (Text) e.getFirstChild();
   return t.getNodeValue();
  }
  else return "";
 }

 public String listAll() throws RemoteException
 {//打印表
  String temp="SID\t\tSNAME\tSCHOOL\t\tCOURSEA\tCOURSEB\tCOURSEC\tCOURSED\n";
  Document doc = getDocument();
  Element root = doc.getDocumentElement();
  NodeList students = root.getElementsByTagName("STUDENT");
  if(students != null)
  {
   for(int i = 0 ; i < students.getLength() ; i ++)
   {
    Element student = (Element) students.item(i);
    String SID = student.getAttribute("SID");
    String SNAME = "";
    SNAME = getValue(student.getElementsByTagName("SNAME"));
    temp=temp + SID +'\t'
     + SNAME +'\t'
     + getValue(student.getElementsByTagName("SCHOOL")) +'\t'
     + getValue(student.getElementsByTagName("COURSEA")) +'\t'
     + getValue(student.getElementsByTagName("COURSEB")) +'\t'
     + getValue(student.getElementsByTagName("COURSEC")) +'\t'
     + getValue(student.getElementsByTagName("COURSED")) +'\n';
   }
  }
  return temp;
 }

 private void insertElement(Document doc, Element student, String attribute, String value)
 {
  Element e = doc.createElement(attribute);
  student.appendChild(e);
  Text t = doc.createTextNode(value);
  e.appendChild(t);
 }

 public String insert(String SID,String SNAME,String SCHOOL,String courseA,
       String courseB,String courseC,String courseD) throws RemoteException
 {//插入操作
  Document doc = getDocument();
  Element root = doc.getDocumentElement();
  Element student = doc.createElement("STUDENT");
  student.setAttribute("SID",SID);
  root.appendChild(student);
  insertElement(doc,student,"SNAME",SNAME);
  insertElement(doc,student,"SCHOOL",SCHOOL);
  insertElement(doc,student,"COURSEA",courseA);
  insertElement(doc,student,"COURSEB",courseB);
  insertElement(doc,student,"COURSEC",courseC);
  insertElement(doc,student,"COURSED",courseD);
  try{
   FileOutputStream outStream = new FileOutputStream("SCORE.xml");
   OutputStreamWriter outWriter = new OutputStreamWriter(outStream);
   ( (XmlDocument) doc).write(outWriter, "GB2312");
   outWriter.close();
   outStream.close();
  }
  catch(Exception e)
  {
   e.printStackTrace();
   return "Insert unsuccessfully.";
  }
  return "Insert successfully.";
 }
 
 public String update(String SID,String SNAME,String SCHOOL,String courseA,
       String courseB,String courseC,String courseD) throws RemoteException
 {//更新操作
  Document doc = getDocument();
  Element root = doc.getDocumentElement();
  NodeList students = root.getElementsByTagName("STUDENT");
  if(students != null)
  {
   for(int i = 0 ; i < students.getLength() ; i ++)
   {
    Element student = (Element) students.item(i);
    if(SID.trim().equals(student.getAttribute("SID")))
    {
     root.removeChild(student);
     Element stu = doc.createElement("STUDENT");
     stu.setAttribute("SID",SID);
     root.appendChild(stu);
     insertElement(doc,stu,"SNAME",SNAME);
     insertElement(doc,stu,"SCHOOL",SCHOOL);
     insertElement(doc,stu,"COURSEA",courseA);
     insertElement(doc,stu,"COURSEB",courseB);
     insertElement(doc,stu,"COURSEC",courseC);
     insertElement(doc,stu,"COURSED",courseD);
     try{
      FileOutputStream outStream = new FileOutputStream("SCORE.xml");
      OutputStreamWriter outWriter = new OutputStreamWriter(outStream);
      ( (XmlDocument) doc).write(outWriter, "GB2312");
      outWriter.close();
      outStream.close();
     }
     catch(Exception e)
     {
      e.printStackTrace();
      return "Update unsuccessfully.";
     }
     return "Update successfully.";
    }
   }
   return "Not found the SID.";
  }
  else return "Not found the SID.";
 }
 public String delete(String SID) throws RemoteException
 {//删除操作
  Document doc = getDocument();
  Element root = doc.getDocumentElement();
  NodeList students = root.getElementsByTagName("STUDENT");
  if(students != null)
  {
   for(int i = 0 ; i < students.getLength() ; i ++)
   {
    Element student = (Element) students.item(i);
    if(SID.trim().equals(student.getAttribute("SID")))
    {
     root.removeChild(student);
     try{
      FileOutputStream outStream = new FileOutputStream("SCORE.xml");
      OutputStreamWriter outWriter = new OutputStreamWriter(outStream);
      ( (XmlDocument) doc).write(outWriter, "GB2312");
      outWriter.close();
      outStream.close();
     }
     catch(Exception e)
     {
      e.printStackTrace();
      return "Delete unsuccessfully.";
     }
     return "Delete successfully.";
    }
   }
   return "Not found the SID.";
  }
  else return "Not found the SID.";
 }
 public String sumScore() throws RemoteException
 {//计算学生总成绩

  String temp="SID\t\tSNAME\tSCHOOL\t\tsumScore\n";
  Document doc = getDocument();
  Element root = doc.getDocumentElement();
  NodeList students = root.getElementsByTagName("STUDENT");
  if(students != null)
  {
   for(int i = 0 ; i < students.getLength() ; i ++)
   {
    Element student = (Element) students.item(i);
    String SID = student.getAttribute("SID");
    String SNAME = "";
    SNAME = getValue(student.getElementsByTagName("SNAME"));
    int courseA = java.lang.Integer.parseInt(getValue(student.getElementsByTagName("COURSEA")));
    int courseB = java.lang.Integer.parseInt(getValue(student.getElementsByTagName("COURSEB")));
    int courseC = java.lang.Integer.parseInt(getValue(student.getElementsByTagName("COURSEC")));
    int courseD = java.lang.Integer.parseInt(getValue(student.getElementsByTagName("COURSED")));
    temp=temp + SID +'\t'
     + SNAME +'\t'
     + getValue(student.getElementsByTagName("SCHOOL")) +'\t'
     + java.lang.String.valueOf(courseA + courseB + courseC + courseD) +'\n';
   }
  }
  return temp; 
 }

 public String find(String SID, String attribute) throws RemoteException
 {
  Document doc = getDocument();
  Element root = doc.getDocumentElement();
  NodeList students = root.getElementsByTagName("STUDENT");
  if(students != null)
  {
   for(int i = 0 ; i < students.getLength() ; i ++)
   {
    Element student = (Element) students.item(i);
    if(SID.trim().equals(student.getAttribute("SID")))
    {
     return getValue(student.getElementsByTagName(attribute.trim()));
    }
   }
   return "Not found the SID.";
  }
  else return "Not found the SID.";
 }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -