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

📄 datebase.java

📁 模拟SQL功能的数据库模拟程序,语言同SQL
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                		{
                			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 + -