📄 datebase.java
字号:
{
num4=num4+1;
num10=i;
}
if(num4==2)
{
stai=num10;
}
else if(num4==3)
{
endi=num10;
namec=new String(ch2,stai+1,endi-1-stai);
}
}
/* for(int h=0;h<20;h++)
{
for(int j=0;j<100;j++)
{
for(int k=0;k<100;k++)
{
date[k][j][h]=namec;
}
}
}*/
for(int i=0;i<=19;i++)
{
if(date[0][0][i].equals(namec))
{
flag=i;
}
}
for(int i=0;i<ch2.length;i++)
{
num7=num6;
num7i=num6i;
if((ch2[i]=='(')||(ch2[i]==',')||(ch2[i]==')'))
{
num6=num6+1;
num6i=i;
//num11=i
if((num6==num7+1)&&(num6>=2))
{
nameb=new String(ch2,num7i+1,num6i-num7i-1);
ai=asi[1][flag];//找到那个表所存储了多少行的元素,从那里开始插入
date[ai][bi][flag]=nameb;
bi=bi+1;
}
}
}
ai=ai+1;
asi[1][flag]=ai;
}
else if(m==3){ //删除表中的元素
int num16=0,num17=0,num18=0,num19=0,num20=0,num21=0,num22=0,num23=0,num24=0,deb=0,las=0,flad=0,p=0;
String named,rowd,wnamed;
named="";
//flad="";
rowd="";
wnamed="";
// for(int i=0;i<ch2.length;i++)
//{
// p=p+1;
//}
// ch2[p]=';';
//ch2[ch2.length]=' ';
num24=ch2.length;
//lined="";
for(int i=0;i<ch2.length;i++)
{
if(ch2[i]==' '||ch2[i]=='(')
{
num16=num16+1;
if(num16==2)
{
num17=i;
}
else if(num16==3)
{
num19=i;
named=new String(ch2,num17+1,num19-num17-1);
}
else if(num16==4)
{
num20=i;
}
}
else if(ch2[i]=='=')
{
num21=num21+1;
if(num21==1)
{
num22=i;
rowd=new String(ch2,num20+1,num22-num20-1);
}
}
else if(ch2[i]==')')
{
ch2[i+1]=';';
num23=num23+1;
if(num23==1)
{
num24=i;
wnamed=new String(ch2,num22+1,num24-num22-1);
}
}
}
for(int i=0;i<19;i++)
{
if(date[0][0][i].equals(named))//named表示所在的表
{
flad=i;
}
}
for(int i=0;i<=asi[2][flad];i++)
{
if(date[0][i][flad].equals(rowd))//rowd表示所在的列
{
deb=i;
}
}
for(int i=0;i<=asi[1][flad];i++)//wnamed表示如果所在的列有和所要的相等的元素
{
if(date[i][deb][flad].equals(wnamed))
{
las=i;
}
}
for(int i=0;i<=asi[2][flad];i++)//找到那行并且把那行的元素都置空
{
date[las][i][flad]=null;
}
//asi[1][flad]=asi[][]
for(int i=las+1;i<=asi[1][flad];i++)
{
for(int j=0;j<=asi[2][flad];j++)
{
date[i-1][j][flad]=date[i][j][flad];
}
}
asi[1][flad]=asi[1][flad]-1;
}
else if(m==4){//添加属性
int num14=0,num15=0,num12=0,num13=0,flaa=0,staa=0,enda=0,endyn=0,aj=1,bj=1,endsx=0,v=0,num30=0,num31=0;
String namea,yn,sx,dsx;//yn用来判定是删除还是增加属性
namea="";
yn="";
sx="";
dsx="";
for(int i=0;i<ch2.length;i++)
{
if(ch2[i]==' '||ch2[i]=='(')
{
num12=num12+1;
num13=i;
if(num12==2)
{
staa=num13;
}
else if(num12==3)
{
enda=num13;
namea=new String(ch2,staa+1,enda-1-staa);
}
else if(num12==4)
{
endyn=num13;
yn=new String(ch2,enda+1,endyn-1-enda);
}
else if(num12==5)
{
endsx=num13;
sx=new String(ch2,endyn+1,endsx-1-endyn);
/* for(int a=0;a<20;a++)
{
for(int j=0;j<100;j++)
{
for(int k=0;k<100;k++)
{
date[k][j][a]=sx;
}
}
}*/
}
}
}
for(int i=0;i<=19;i++)
{
if(date[0][0][i].equals(namea))
{
flaa=i;
}
}
if(yn.equals("add"))
{
bj=asi[2][flaa];
date[0][bj][flaa]=sx;
bj=bj+1;
asi[2][flaa]=bj;
}
else if(yn.equals("drop"))
{
for(int i=0;i<ch2.length;i++)
{
if(ch2[i]=='(')
{
num30=i;
}
else if(ch2[i]==')')
{
num31=i;
dsx=new String(ch2,num30+1,num31-1-num30);
}
}
// bj=asi[2][flaa];
for(int i=0;i<=asi[2][flaa];i++)
{
if(date[0][i][flaa].equals(dsx))
{
// int v=0;
v=i;
}
}
for(int i=0;i<=asi[1][flaa];i++)
{
date[i][v][flaa]=null;
}
for(int i=v+1;i<=asi[2][flaa];i++)
{
for(int j=0;j<=asi[1][flaa];j++)
{
date[j][i-1][flaa]=date[j][i][flaa];
}
}
// bj=asi[2][flaa];
/* for(int i=0;i<=asi[1][flaa];i++)
{
date[i][bj][flaa]="";
}*/
asi[2][flaa]=asi[2][flaa]-1;
}
}
else if(m==5){ //select选择
String wants,wheres,ys,shadow1[],hows,want;
wants="";
wheres="";
ys="";
hows="";
want="";
shadow1=new String[100];
for(int i=0;i<=20;i++)
{
shadow1[i]="";
}
int sn=0,sn0=0,sn1=0,sn2=0,sn3=0,sn4=0,sn5=0,sn6=0,sn7=0,sn8=0,shadow=0,flas=0,flaa=0;
int as=1,bs=1,wbs=1;
for(int i=0;i<ch2.length;i++)
{
if(ch2[i]==' '||ch2[i]=='(')
{
sn0=sn0+1;
if(sn0==1)
{
sn2=i;
}
else if(sn0==2)
{
sn4=i;
wants=new String(ch2,sn2+1,sn4-sn2-1);
}
else if(sn0==3)
{
sn3=i;
}
else if(sn0==4)
{
sn5=i;
// shadow=1;
}
}
else if(ch2[i]==')')
{
sn=sn+1;
if(sn==1)
{
sn6=i;
wheres=new String(ch2,sn3+1,sn6-sn3-1);
}
if(sn==2)
{
sn8=i;
shadow=3;
ys=new String(ch2,sn7+1,sn8-sn7-1);
}
}
else if(ch2[i]=='='||ch2[i]=='<'||ch2[i]=='>')
{
sn6=sn6+1;
if(sn6==1)
{
sn7=i;
hows=new String(ch2,sn5+1,sn7-sn5-1);
}
}
else if(ch2[i]=='*')
{
shadow=2;
}
}
for(int i=0;i<=19;i++)
{
if(date[0][0][i].equals(wheres))
{
flas=i;//flas代表找到那个需要投影的表
}
}
if(shadow==0)
{
for(int i=0;i<=asi[2][flas];i++)
{
if(date[0][i][flas].equals(wants))
{
bs=i;//bs代表找到那个表的 要取得的投影的列
}
}
for(int j=0;j<=asi[1][flas];j++)
{
shadow1[j]=date[j][bs][flas];
}
new shadow(shadow1,asi,flas,shadow,date,want);
}
else if(shadow==2)
{
new shadow(shadow1,asi,flas,shadow,date,want);
}
else if(shadow==3)
{
for(int i=0;i<=asi[2][flas];i++)
{
if(date[0][i][flas].equals(wants))
{
wbs=i;
}
}
for(int i=0;i<=asi[2][flas];i++)
{
if(date[0][i][flas].equals(hows))
{
bs=i;
}
}
for(int i=0;i<=asi[1][flas];i++)
{
if(date[i][bs][flas].equals(ys))
{
as=i;
}
}
want=date[as][wbs][flas];
new shadow(shadow1,asi,flas,shadow,date,want);
}
}
}
else
if(e.getSource()==change){
text.setText(null);
}
else
if(e.getSource()==look||e.getSource()==itemLook){
// this.validate();
new List("查看数据库中信息",date,asi,c);
}
else
if(e.getSource()==find){
}
else
if(e.getSource()==itemNew){
for(int i=0;i<10;i++)
{
for(int j=0;j<10;j++)
{
for(int k=0;k<40;k++)
{
date[j][k][i]=null;
}
}
}
}
else
if(e.getSource()==help1){
new Helplist("帮助");
}
else if(e.getSource()==itemSave){
try{
new Writerin(date,asi);
}
catch(Exception ee)
{
System.out.println(ee);
}
}
}
}
public class Datebase{
public static void main(String[] args){
new Outlook("data base program");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -