📄 dbcompile.java
字号:
return;
}
Where w=new Where();
w.setWhere(refer, standard, value,conj);
outscreen+=ts.selectRecord(column,w,function,othername,by,order);
}
private void actionDelete() {
String tableName=(String)tablename.get(0);
TableStructure ts = tm.getTable(tableName);
if(ts==null){
outscreen+="Can't find the table!\n";
return;
}
Where w=new Where();
w.setWhere(refer, standard, value,conj);
String f=ts.deleteRecord(w);
if(f.equals("suc")) outscreen+=ts.showTable();
else outscreen+=f;
}
private void actionUpdate() {
String tableName=(String)tablename.get(0);
TableStructure ts= tm.getTable(tableName);
if(ts==null){
outscreen+="Can't find the table!\n";
return;
}
Where w=new Where();
w.setWhere(refer, standard, value,conj);
UpSet u=new UpSet();
u.setUpset(column, value1);
String f=ts.updateRecord(u, w);
if(f.equals("suc")) outscreen+=ts.showTable();
else outscreen+=f;
}
void actionInsert() {
String tableName=(String)tablename.get(0);
TableStructure ts = tm.getTable(tableName);
if(ts==null){
outscreen+="Can't find the table!\n";
return;
}
boolean f=true;
TableColumns[] tc;
if(ts.getTableName().equals(tableName))
{
f=false;
tc=ts.getTc();
String []s=new String[tc.length];
for(int j=0;j<tc.length;j++)
s[j]="null";
if(column.size()>0)
{
for(int j=0;j<tc.length;j++)
{
for(int k=0;k<column.size();k++)
if(tc[j].getColumn().equals((String)column.get(k)))
{
s[j]=(String)value.get(k);
}
}
}else {
for(int j=0;j<value.size();j++)
s[j]=(String)value.get(j);
}
boolean result = ts.insertRecord(s);
if(result==false)
{
outscreen+="Can't insert the record!\n";
return;
}
outscreen+=ts.showTable();
return;
}
if(f) outscreen+="Can't find the table!\n";
}
void actionTable() {
String tableName=(String)tablename.get(0);
TableStructure ts_temp = tm.getTable(tableName);
if(ts_temp!=null) {
outscreen+=tableName+"表已存在,不能重复创建!\n";
return;
}
TableColumns[] tc = new TableColumns[column.size()];
for(int i=0;i<tc.length;i++)
{
tc[i]=new TableColumns();
tc[i].setColumn((String)column.get(i));
tc[i].setType((String)type.get(i));
tc[i].setIsEmpty(((String)bound.get(i)).contains("notnull")?1:0);
}
String primary_key=null;
for(int i=0;i<bound.size();i++)
if(((String)bound.get(i)).contains("pk"))
primary_key=(String)column.get(i);
String foreign_key=null;
for(int i=0;i<bound.size();i++)
if(((String)bound.get(i)).contains("fk"))
foreign_key=(String)column.get(i)+((String)bound.get(i)).substring(((String)bound.get(i)).indexOf("fk")+2);
TableStructure ts= new TableStructure();
ts.createTable(tableName, tc, primary_key, foreign_key);
tm.setTableList(ts);//添加到系统表里
outscreen+=ts.showTable();
}
String recognize(String word)
{
for(int i=0;i<op.length;i++)
if(word.equals(op[i]))
return "op";
for(int i=0;i<ref.length;i++)
if(word.equals(ref[i]))
return "ref";
for(int i=0;i<key.length;i++)
if(word.equals(key[i]))
return word;
for(int i=0;i<datatype.length;i++)
if(word.equals(datatype[i]))
{
if(word.equals("varchar"))
return "varchar";
else return "datatype";
}
for(int i=0;i<punc.length;i++)
if(word.equals(punc[i]))
return word;
for(int i=0;i<func.length;i++)
if(word.equals(func[i]))
return "function";
try{
Integer.parseInt(word);
return "number";
}catch (Exception e){
return "letters" ;
}
}
boolean action(String act,String sql){
if(act.equals("null")) return true;
act=act.replace("&", sql);
System.out.println(act);
char handle;
handle=act.charAt(0);
switch(handle){
case 'c':switch(des=act.charAt(7)){
case 't':
tablename=new Vector();
column=new Vector();
type=new Vector();
bound=new Vector();
tablename.removeAllElements();
column.removeAllElements();
type.removeAllElements();
bound.removeAllElements();
break;
case 'i':
tablename=new Vector();
column=new Vector();
value=new Vector();
tablename.removeAllElements();
column.removeAllElements();
value.removeAllElements();
break;
case 'u':tablename=new Vector();
column=new Vector();
value=new Vector();
value1=new Vector();
standard=new Vector();
refer=new Vector();
conj=new Vector();
conj.removeAllElements();
conj.add("and");
refer.removeAllElements();
column.removeAllElements();
tablename.removeAllElements();
value.removeAllElements();
value1.removeAllElements();
standard.removeAllElements();
break;
case 'd':tablename=new Vector();
value=new Vector();
standard=new Vector();
refer=new Vector();
conj=new Vector();
conj.removeAllElements();
conj.add("and");
refer.removeAllElements();
tablename.removeAllElements();
value.removeAllElements();
standard.removeAllElements();
break;
case 's':tablename=new Vector();
value=new Vector();
standard=new Vector();
refer=new Vector();
conj=new Vector();
column=new Vector();
function=new Vector();
othername=new Vector();
othername.removeAllElements();
function.removeAllElements();
column.removeAllElements();
conj.removeAllElements();
conj.add("and");
refer.removeAllElements();
tablename.removeAllElements();
value.removeAllElements();
standard.removeAllElements();
}break;
case 'a':switch(act.charAt(7)){
case 'b':by=act.substring(act.indexOf("=")+1);
case 'o':switch(act.charAt(8)){
case 't':othername.add(act.substring(act.indexOf("=")+1));break;
case 'r':if(act.substring(act.indexOf("=")+1).equals("desc")) order=false;break;
}break;
case 't':switch(act.charAt(8)){
case 'a':tablename.add(act.substring(act.indexOf("=")+1));break;
case 'y':type.add(act.substring(act.indexOf("=")+1));break;
}break;
case 'c':switch(act.charAt(9)){
case 'n':conj.add(act.substring(act.indexOf("=")+1));break;
case 'l':column.add(act.substring(act.indexOf("=")+1));break;
}break;
case 'n':bound.add("notnull");break;
case 'u':if(bound.size()<column.size()) {bound.add("unique");break;}
else {String s=(String)bound.get(bound.size()-1)+" unique";
bound.remove(bound.size()-1);bound.add(s);
System.out.println((String)bound.get(bound.size()-1));break;}
case 'p':bound.add("pk");break;
case 'f':switch(act.charAt(8)){
case 'k':if(pos==-1){
String s2=act.substring(act.indexOf("=")+1);System.out.println(s2);
for(int i=0;i<column.size();i++)
{
if(s2.equalsIgnoreCase((String)column.get(i)))
{
String s=(String)bound.get(i)+" fk";
bound.remove(i);
bound.add(i, s);
pos=i;
break;
}}
}else {
String s=(String)bound.get(pos)+" "+act.substring(act.indexOf("=")+1);
bound.remove(pos);bound.add(pos,s);break;
}
break;
case 'u':function.add(act.substring(act.indexOf("=")+1));break;
}break;
case 'r':switch(act.charAt(8)){
case 'e':refer.add(act.substring(act.indexOf("=")+1));break;
}
break;
case 'v':String s=act.substring(act.indexOf("=")+1);
try{
Integer.parseInt(s);
}catch(Exception e){
if (s.equals("null")) ;
else if(s.charAt(0)=='\'') s=s.substring(1,s.length()-1);
else {
outscreen+="the type of values is not right!\n";
return false;
}
}
switch(act.charAt(12)){
case '1':value1.add(s);break;
default:value.add(s);break;
}
break;
case 's':standard.add(act.substring(act.indexOf("=")+1));break;
}break;
case 'e':switch(act.charAt(7)){
case '1':if(bound.size()<column.size()) bound.add(" ");break;
case '2':if(!(act.substring(act.indexOf("=")+1).equals("=")))
return false;
break;
case '3':if(act.substring(act.indexOf("=")+1).equals("*"))
column.add("");
else return false;
}
break;
}
return true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -