📄 yymdb.java
字号:
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 + -