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

📄 yymdb.java

📁 实现了一个简单的数据库功能.包括 录入,查询,修改,显示所有记录,等等的基本的数据库功能 .
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

class TableOrFieldNotFound
    extends Exception {
  public TableOrFieldNotFound() {

  }

  public TableOrFieldNotFound(String where) {
    super("(" + where + ")" + "Can't find this Field or Table!");
  }
}

class ConcurrentModificationException
    extends RuntimeException {

  public ConcurrentModificationException() {

  }

  public ConcurrentModificationException(String message) {
    super(message);
  }
}

interface Iterator {
  boolean hasNext();

  Object next();

  void remove();
}

interface ListIterator
    extends Iterator {
  boolean hasNext();

  Object next();

  boolean hasPrevious();

  Object previous();

  int nextIndex();

  int previousIndex();

  void remove();

  void set(Object o);

  void add(Object o);
}

class NoSuchElementException
    extends RuntimeException {

  public NoSuchElementException() {
    super();
  }

  public NoSuchElementException(String s) {
    super(s);
  }
}

class LinkedList {
  private transient LinkList header = new LinkList(null, null, null);

  private transient int size = 0;

  private transient int modCount = 0;

  public LinkedList() {
    header.next = header.previous = header;
  }

  public Object getFirst() {
    if (size == 0) {
      throw new NoSuchElementException();
    }

    return header.next.element;
  }

  public Object getLast() {
    if (size == 0) {
      throw new NoSuchElementException();
    }

    return header.previous.element;
  }

  public Object removeFirst() {
    Object first = header.next.element;
    remove(header.next);
    return first;
  }

  public Object removeLast() {
    Object last = header.previous.element;
    remove(header.previous);
    return last;
  }

  public boolean contains(Object o) {
    return indexOf(o) != -1;
  }

  public int size() {
    return size;
  }

  public boolean add(Object o) {
    LinkList newLinkList = new LinkList(o, header, header.previous);
    newLinkList.previous.next = newLinkList;
    newLinkList.next.previous = newLinkList;
    size++;
    modCount++;
    return true;
  }

  public boolean remove(Object o) {
    if (o == null) {
      for (LinkList e = header.next; e != header; e = e.next) {
        if (e.element == null) {
          if (e == header) {
            throw new NoSuchElementException();
          }
          e.previous.next = e.next;
          e.next.previous = e.previous;
          size--;
          modCount++;
          return true;
        }
      }
    }
    else {
      for (LinkList e = header.next; e != header; e = e.next) {
        if (o.equals(e.element)) {
          if (e == header) {
            throw new NoSuchElementException();
          }
          e.previous.next = e.next;
          e.next.previous = e.previous;
          size--;
          modCount++;
          return true;
        }
      }
    }
    return false;
  }

  public void clear() {
    modCount++;
    header.next = header.previous = header;
    size = 0;
  }

  public Object get(int index) {
    return LinkList(index).element;
  }

  public Object set(int index, Object element) {
    LinkList e = LinkList(index);
    Object oldVal = e.element;
    e.element = element;
    return oldVal;
  }

  public void add(int index, Object element) {
    LinkList newLinkList = new LinkList(element, (index == size ? header
                                                  : LinkList(index)),
                                        (index == size ? header :
                                         LinkList(index)).previous);
    newLinkList.previous.next = newLinkList;
    newLinkList.next.previous = newLinkList;
    size++;
    modCount++;
  }

  public Object remove(int index) {
    LinkList e = LinkList(index);
    if (e == header) {
      throw new NoSuchElementException();
    }

    e.previous.next = e.next;
    e.next.previous = e.previous;
    size--;
    modCount++;
    return e.element;
  }

  private LinkList LinkList(int index) {
    if (index < 0 || index >= size) {
      throw new IndexOutOfBoundsException("Index: " + index + ", Size: " + size);
    }
    LinkList e = header;
    if (index < (size >> 1)) {
      for (int i = 0; i <= index; i++) {
        e = e.next;
      }
    }
    else {
      for (int i = size; i > index; i--) {
        e = e.previous;
      }
    }
    return e;
  }

  public int indexOf(Object o) {
    int index = 0;
    if (o == null) {
      for (LinkList e = header.next; e != header; e = e.next) {
        if (e.element == null) {
          return index;
        }
        index++;
      }
    }
    else {
      for (LinkList e = header.next; e != header; e = e.next) {
        if (o.equals(e.element)) {
          return index;
        }
        index++;
      }
    }
    return -1;
  }

  public int lastIndexOf(Object o) {
    int index = size;
    if (o == null) {
      for (LinkList e = header.previous; e != header; e = e.previous) {
        index--;
        if (e.element == null) {
          return index;
        }
      }
    }
    else {
      for (LinkList e = header.previous; e != header; e = e.previous) {
        index--;
        if (o.equals(e.element)) {
          return index;
        }
      }
    }
    return -1;
  }

  private static class LinkList {
    Object element;

    LinkList next;

    LinkList previous;

    LinkList(Object element, LinkList next, LinkList previous) {
      this.element = element;
      this.next = next;
      this.previous = previous;
    }
  }

  public Object[] toArray() {
    Object[] result = new Object[size];
    int i = 0;
    for (LinkList e = header.next; e != header; e = e.next) {
      result[i++] = e.element;
    }
    return result;
  }
}

class clsTable {
  private String name;

  LinkedList field;
  public clsTable() {

  }

  public clsTable(String tblname) {
    name = new String(tblname);
    field = new LinkedList();
    field.clear();
  }

  public String getName() {
    return name;
  }

  public void setName(String newtblname) {
    name = newtblname;
  }

  public void finalize() {
    name = null;
    field.clear();
    field = null;
    System.gc();
    Runtime.getRuntime().gc();
  }
}

class clsField {
  private String name;

  LinkedList value;
  public clsField() {

  }

  public clsField(String fldname) {
    name = new String(fldname);
    value = new LinkedList();
    value.clear();
  }

  public String getName() {
    return name;
  }

  public void setName(String newFieldName) {
    name = newFieldName;
  }

  public void finalize() {
    name = null;
    value.clear();
    value = null;
    System.gc();
    Runtime.getRuntime().gc();
  }
}

class clsDatabase {
  private String name;

  private String errorMessage;

  LinkedList table;

  public clsDatabase() {
    this.name = new String();
    this.errorMessage = new String();
    table = new LinkedList();
  }

  public String getName() {
    return name;
  }

  public void setName(String newDBName) {
    name = newDBName;
  }

  public int getTableCount() {
    return table.size();
  }

  public int getFieldCount(String tblname) {
    clsTable temp = null;
    int ret = 0;
    try {
      if (existsTable(tblname) == false) {
        errorMessage = "(getFieldCount)Can't find this table!";
      }
      else {
        temp = retTableRef(tblname);
        ret = temp.field.size();
      }
    }
    catch (Exception e) {
      errorMessage = "GetFieldCount Error!\nMessage:" + e;
    }
    finally {

    }
    return ret;
  }

  public void add_table(String tblname) {
    try {
      if (existsTable(tblname) == true || tblname.equals("")) {
        errorMessage = "Table Name Error!!!";
      }
      else {
        table.add(new clsTable(tblname));
      }
    }
    catch (Exception e) {
      errorMessage = "AddTable Error!\nMessage:" + e;
    }
    finally {

    }
  }

  public void del_table(String tblname) {
    try {
      clsTable temp;
      if (existsTable(tblname)) {
        for (int i = 0; i < table.size(); i++) {
          temp = (clsTable) table.get(i);
          if (temp.getName().equals(tblname)) {
            table.remove(i);
            break;
          }
        }
      }

⌨️ 快捷键说明

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