📄 yymdb.java
字号:
}
public boolean existsTable(String tblname) {
clsTable temptbl = null;
boolean out = false;
try {
for (int i = 0; i < table.size(); i++) {
temptbl = (clsTable) table.get(i);
if (temptbl.getName().equals(tblname)) {
out = true;
break;
}
}
}
catch (Exception e) {
errorMessage = "FindTableExists Error!!!";
}
return out;
}
public boolean existsField(String tblname, String fldname) {
clsTable temptbl = null;
clsField tempfld = null;
boolean out = false;
try {
for (int i = 0; i < table.size(); i++) {
temptbl = (clsTable) table.get(i);
if (temptbl.getName().equals(tblname)) {
for (int j = 0; j < temptbl.field.size(); j++) {
tempfld = (clsField) temptbl.field.get(j);
if (tempfld.getName().equals(fldname)) {
out = true;
break;
}
}
}
}
}
catch (Exception e) {
errorMessage = "FindFieldExists Error!!!";
}
return out;
}
public clsTable retTableRef(int tblIndex) {
clsTable ret = null;
try {
if (tblIndex < table.size()) {
ret = (clsTable) table.get(tblIndex);
}
else {
errorMessage = "(retTableRef)Error Index!";
}
}
catch (Exception e) {
errorMessage = "getTableRef Error!!!\nMessage:" + e;
}
return ret;
}
public clsTable retTableRef(String tblname) {
clsTable ret = null;
try {
if (existsTable(tblname)) {
for (int i = 0; i < table.size(); i++) {
ret = (clsTable) table.get(i);
if (ret.getName().equals(tblname)) {
break;
}
}
}
else {
errorMessage = "(retTableRef)Can't find this table!";
}
}
catch (Exception e) {
errorMessage = "getTableRef Error!!!\nMessage:" + e;
}
return ret;
}
public clsField retFieldRef(String tblname, String fldname) {
clsTable temptbl = null;
clsField ret = null;
try {
if (existsField(tblname, fldname)) {
temptbl = retTableRef(tblname);
for (int i = 0; i < temptbl.field.size(); i++) {
ret = (clsField) temptbl.field.get(i);
if (ret.getName().equals(fldname)) {
break;
}
}
}
else {
errorMessage = "(retFieldRef)Can't find this field!";
}
}
catch (Exception e) {
errorMessage = "getFieldRef Error!\nMessage:" + e;
}
return ret;
}
public clsField retFieldRef(String tblname, int fldIndex) {
clsTable temptbl = null;
clsField ret = null;
try {
if (existsTable(tblname)) {
temptbl = retTableRef(tblname);
if (fldIndex < temptbl.field.size()) {
ret = (clsField) temptbl.field.get(fldIndex);
}
else {
errorMessage = "(retFieldRef)Error Index!";
}
}
else {
errorMessage = "(retFieldRef)Can't find this table!";
}
}
catch (Exception e) {
errorMessage = "getFieldRef Error!\nMessage:" + e;
}
return ret;
}
public clsField retFieldRef(int tblIndex, int fldIndex) {
clsTable temptbl = null;
clsField ret = null;
try {
if (tblIndex < table.size()) {
temptbl = retTableRef(tblIndex);
if (fldIndex < temptbl.field.size()) {
ret = (clsField) temptbl.field.get(fldIndex);
}
}
else {
errorMessage = "(retFieldRef)Error Index!";
}
}
catch (Exception e) {
errorMessage = "getFieldRef Error!\nMessage:" + e;
}
return ret;
}
public Object[] query(String tblname, String fldname, String fldvalue) {
LinkedList out = new LinkedList();
clsField tempfld = retFieldRef(tblname, fldname);
try {
if (existsTable(tblname) == true
&& existsField(tblname, fldname) == true) {
for (int i = 0; i < tempfld.value.size(); i++) {
if ( ( (String) tempfld.value.get(i)).equals(fldvalue)) {
out.add( (String) tempfld.value.get(i));
}
}
}
else {
errorMessage = "(query)Can't find this table or field!";
}
}
catch (Exception e) {
errorMessage = "Query Error!\nMessage:" + e;
}
return out.toArray();
}
public class SaxParser
extends DefaultHandler {
private boolean fldstart = false;
private boolean dbstart = false;
private boolean tblstart = false;
private String temptblname = new String();
private LinkedList fldval = new LinkedList();
private String tempfldname = new String();
private boolean ParseValue = false;
public SaxParser(boolean isParseValue) {
ParseValue = isParseValue;
}
public void startElement(String nsuri, String localName, String qName,
Attributes attributes) {
if (ParseValue == false) {
if (qName.equals("Database")) {
dbstart = true;
setName(attributes.getValue(0));
System.out.println("Find a Database."
+ attributes.getValue(0));
}
else if (qName.equals("Table")) {
tblstart = true;
temptblname = attributes.getValue(0);
add_table(attributes.getValue(0));
System.out.println("Find a Table."
+ attributes.getValue(0));
}
else if (qName.equals("Field")) {
fldstart = true;
add_field(temptblname, attributes.getValue(0));
tempfldname = attributes.getValue(0);
System.out.println("Find a Field."
+ attributes.getValue(0));
}
}
else {
if (qName.equals("Table")) {
tblstart = true;
temptblname = attributes.getValue(0);
System.out.println("Find a Table."
+ attributes.getValue(0));
}
else if (qName.equals("Field")) {
fldstart = true;
tempfldname = attributes.getValue(0);
System.out.println("Find a Field."
+ attributes.getValue(0));
}
else if (qName.equals("Value")) {
if (tblstart == true && fldstart == true) {
clsTable temptbl = null;
clsField tempfld = null;
for (int i = 0; i < table.size(); i++) {
temptbl = (clsTable) table.get(i);
if (temptbl.getName().equals(temptblname)) {
for (int j = 0; j < temptbl.field.size(); j++) {
tempfld = (clsField) temptbl.field.get(j);
if (tempfld.getName().equals(tempfldname)) {
tempfld.value.add(attributes.getValue(0));
table.set(i, temptbl);
break;
}
}
break;
}
}
System.out.println("Find a Field Value.");
}
}
}
}
public void characters(char[] cha, int start, int length) {
}
public void endElement(String nsuri, String localName, String qName) {
if (qName.equals("Table")) {
tblstart = false;
temptblname = "";
tempfldname = "";
}
if (qName.equals("Field")) {
fldstart = false;
tempfldname = "";
}
}
}
public void finalize() {
name = null;
table.clear();
table = null;
errorMessage = null;
System.gc();
Runtime.getRuntime().gc();
}
}
public class yymDB {
clsDatabase db = new clsDatabase();
public static void main(String args[]) {
yymDB yymdb = new yymDB();
String usrinp = new String();
String temp = new String();
BufferedReader input = new BufferedReader(new InputStreamReader(
System.in));
while (!usrinp.equals("exit")) {
System.out.print("YYMDB->");
try {
usrinp = input.readLine();
usrinp = usrinp.toLowerCase();
if (usrinp.equals("exit")) {
System.exit(0);
}
else if (usrinp.equals("modifydbname")) {
System.out.println("Input new Database name:");
temp = input.readLine();
yymdb.db.setName(temp);
}
else if (usrinp.equals("addtable")) {
System.out.println("Input new table name:");
temp = input.readLine();
yymdb.db.add_table(temp);
}
else if (usrinp.equals("deltable")) {
System.out.println("Input delete table name:");
temp = input.readLine();
yymdb.db.del_table(temp);
}
else if (usrinp.equals("addfield")) {
System.out.println("Input table name:");
temp = input.readLine();
String temp2 = new String();
System.out.println("Input new field name:");
temp2 = input.readLine();
yymdb.db.add_field(temp, temp2);
}
else if (usrinp.equals("delfield")) {
System.out.println("Input table name:");
temp = input.readLine();
String temp2 = new String();
System.out.println("Input delete field name:");
temp2 = input.readLine();
yymdb.db.del_field(temp, temp2);
}
else if (usrinp.equals("printall")) {
System.out.println(yymdb.db.return_all());
}
else if (usrinp.equals("modifytblname")) {
System.out.println("Input old table name:");
temp = input.readLine();
String temp2 = new String();
}
else if (usrinp.equals("addrow")) {
System.out.println("Input table name:");
temp = input.readLine();
String addrowval[] = new String[yymdb.db
.getFieldCount(temp)];
for (int i = 0; i <yymdb.db.getFieldCount(temp); i++) {
System.out.println("Input field "
+ yymdb.db.getFieldName(temp, i) + " value:");
addrowval[i] = input.readLine();
}
yymdb.db.add_row(temp, addrowval);
}
else if (usrinp.equals("delrow")) {
System.out.println("Input table name:");
temp = input.readLine();
String temp2, temp3;
System.out.println("Input field name");
temp2 = input.readLine();
System.out.println("Input field value");
temp3 = input.readLine();
yymdb.db.del_row(temp, temp2, temp3);
}
else if (usrinp.equals("savedb")) {
System.out.println("Input file name:");
temp = input.readLine();
yymdb.db.saveDB(temp);
}
else if (usrinp.equals("opendb")) {
System.out.println("Input file name:");
temp = input.readLine();
File file = new File(temp);
if (file.exists() == true) {
yymdb.db.openDB(temp);
}
else {
System.out.println("Can't find this file!!!");
}
}
else if (usrinp.equals("help")) {
System.out.println("************************************");
System.out.println("* Command List *");
System.out.println("************************************");
System.out.println("*modifydbname:modify database name *");
System.out.println("************************************");
System.out.println("* addtable:add a table *");
System.out.println("************************************");
System.out.println("* deltable:delete a table *");
System.out.println("************************************");
System.out.println("* addfield:add a field *");
System.out.println("************************************");
System.out.println("* delfield:delete a field *");
System.out.println("************************************");
System.out.println("* addrow:add a row *");
System.out.println("************************************");
System.out.println("* delrow:del a row *");
System.out.println("************************************");
System.out.println("* mdoifytblname:modify table name *");
System.out.println("************************************");
System.out.println("*printall:print all table,field,row*");
System.out.println("************************************");
System.out.println("* savedb:save database to file *");
System.out.println("************************************");
System.out.println("* opendb:open database from file *");
System.out.println("************************************");
System.out.println("* getmemfree:get memory free size *");
System.out.println("************************************");
System.out.println("\n");
}
else if (usrinp.equals("getmemfree")) {
System.out.println(Runtime.getRuntime().freeMemory()
+ " Program Memory free");
}
else if (usrinp.equals("")) {
}
else {
System.out.println("Unknow Command!!!");
}
}
catch (Exception e) {
}
finally {
if (yymdb.db.getErrorMessage().equals("")) {
System.out.println("Finish this work!!!");
}
else if (yymdb.db.getErrorMessage().indexOf("Index") == -1) {
System.out.println(yymdb.db.getErrorMessage());
yymdb.db.setErrorMessageEmpty();
}
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -