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

📄 temtab.java

📁 (文件数据库系统)功能强大,很有价值的代码.
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
else{	for( k=0;k<attri.length;k+=2)
	if(attri[k].trim().equals(attname[j]))
	break;
	if(k==attri.length) {JOptionPane.showMessageDialog(null,"no such attribute name");return;}
sel.Select(k/2,result[j]);
}
}
if(value!=null){	result[i]=new String[20];
if(attname[i].equals(key))
		{
		sel.Select(result[i]);
		
	}
	
		
	
	
else{	for( k=0;k<attri.length;k+=2)
	if(attri[k].trim().equals(attname[i]))
	break;
	if(k==attri.length) {JOptionPane.showMessageDialog(null,"no such attribute name");return;}
sel.Select(k/2,result[i]);}
}

boolean end=true;String out=" ";
for(int m=0;m<result[0].length;m++){
for(int n=0;n<i;n++)
{if(result[n][m]!=null)
end=false;
out+=result[n][m];
}
if(end==true) break;
else{
if(!end&&value==null)
{output.append(out+"\n");out=new String(" ");end=true;}
 

if(!end&&value.equals(result[i][m].trim()))
{output.append(out+"\n");out=new String(" ");end=true;
}
 if(!end&&!value.equals(result[i][m].trim())){out=new String(" ");end=true;continue;}

}
}
sel.close();
}

else{
	if(token.hasMoreTokens())
{
attname[i++]=token.nextToken();                     //condition
 attname[i]=token.nextToken();
}
	
	
	
	Header h2=systab.getH(systab.Search(tabName[1]);
	Header H=new Header(h,h2);
	WriteFile sel=new WriteFile(H);sel.newTab(h,h2);
	attri=H.getAttri();
	
		String[][] result=new String[i+2][];     //2attribute for where ...=...
for(int j=0;j<i;j++)
{
	System.out.println(attname[j]);
	result[j]=new String[20];
		
	
	
	for( k=0;k<attri.length;k+=2)
	if(attri[k].trim().equals(attname[j]))
	break;
	if(k==attri.length) {JOptionPane.showMessageDialog(null,"no such attribute name");return;}
sel.Select(k/2,result[j]);
}
}
if(attname[i-1]!=null&&attname[i]!=null){	result[i-1]=new String[20];result[i]=new String[20];
		
	
	
	for( k=0;k<attri.length;k+=2)
	if(attri[k].trim().equals(attname[i-1]))
	break;
	if(k==attri.length) {JOptionPane.showMessageDialog(null,"no such attribute name");return;}
sel.Select(k/2,result[i-1]);

for( k=0;k<attri.length;k+=2)
	if(attri[k].trim().equals(attname[i]))
	break;
	if(k==attri.length) {JOptionPane.showMessageDialog(null,"no such attribute name");return;}
sel.Select(k/2,result[i]);
}



boolean end=true;String out=" ";
for(int m=0;m<result[0].length;m++){
for(int n=0;n<i;n++)
{if(result[n][m]!=null)
end=false;
out+=result[n][m];
}
if(end==true) break;
else{
if(!end&&attname[i-1]==null)
{output.append(out+"\n");out=new String(" ");end=true;}
 

if(!end&&(result[i-1][m].trim().equals(result[i][m].trim()))
{output.append(out+"\n");out=new String(" ");end=true;
}
 if(!end&&!(result[i-1][m].trim().equals(result[i][m].trim())){out=new String(" ");end=true;continue;}

}
}
sel.close();
}

	
}}
	

}});
JPanel bu=new JPanel();
bu.add(button1);
bu.add(button2);
getContentPane().setLayout(new BorderLayout());
Container container=getContentPane();
container.add(bu,BorderLayout.NORTH);
container.add(text,BorderLayout.CENTER);
container.add(new JScrollPane(output),BorderLayout.SOUTH);
setVisible(false);
		setSize(500,500);



			
}
}	



 class changeDataDialog extends JInternalFrame{
	private JTextArea text;
	private JTextArea error;
	private SystemTab systab;
	
	changeDataDialog(SystemTab tab)
	{
		super(" change data ");
		text=new JTextArea(20,30);
		text.setEditable(true);
		Button button1=new Button("prompt");
	Button	button2=new Button("Commit");
	Button button3=new Button("Clear");

		error=new JTextArea(8,30);
		error.setEditable(false);
		systab=tab;
	
	
		 button1.addActionListener(new ActionListener(){
        	public void actionPerformed(ActionEvent e){
        	JOptionPane.showMessageDialog(null,"Create\tInsert\tDelete...","prompt",JOptionPane.INFORMATION_MESSAGE);
        }});
        	button3.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent e)
			{
				text.setText(" ");
			}});
		
        button2.addActionListener(new ActionListener(){
        	public void actionPerformed(ActionEvent e){
        	StringTokenizer token=new StringTokenizer(text.getText()," \t\n\r\f,()=");
        	String next;int count=0;
        		if(token.hasMoreTokens())
				{
					
				next=token.nextToken();
				if(next.equals("create"))
				{
					if(!token.nextToken().equals("table"))return;
					Header h=new Header();
					
					String str=token.nextToken();
					h.setName(str);
					str=token.nextToken();
					h.setKey(str);
				if(token.hasMoreTokens())	str=token.nextToken();
				else {error.setText("no key type");return;}
				h.setType(str);
				count++;
			
			String[] att=new String[20];
			int i=0;String type;
				while(token.hasMoreTokens())
				{
					
					str=token.nextToken();
					if(token.hasMoreTokens())	type=token.nextToken();
				else{ error.setText("no attribute type");return;
			}
				if(type.equals("int")||type.equals("real")||type.equals("string")||type.equals("boolean"))
				{
					att[i++]=str;
					att[i++]=type;count++;
				}
				else {error.setText("type invalid");return;}
				
			
				
			}
			h.setCount(count);
			h.setAttri(att);
			systab.add(h);
			error.append("successfully create table "+h.getName()+"\n");
		}
		if(next.equals("insert")){
			if(!token.nextToken().equals("into"))
			error.setText("sematic error");
			String name=token.nextToken();
		Header h=systab.getH(systab.Search(name));
		
		WriteFile add=new WriteFile(h);
		String key=new String(token.nextToken());
		if(key==null)
		error.setText("key can not be null");
		String att[]=new String[h.getCount()-1];
		for(int k=0;k<att.length;k++)
		if(token.hasMoreTokens())
		att[k]=token.nextToken();
		else error.setText("need more attribute value");
		add.addRecord(key,att);
		add.close();
		error.append("finish inserting\n");
	}
	if(next.equals("delete"))
	{
		String key=token.nextToken();
			if(key==null)
		error.setText("key can not be null");
	
		if(!token.nextToken().equals("from"))
			error.setText("sematic error");
			String name=token.nextToken();
			Header h=systab.getH(systab.Search(name));
		WriteFile del=new WriteFile(h);
		del.Delete(key);
		del.close();
		error.append("finish delete tuple\n");
	}
	if(next.equals("update"))
	{
			String name=token.nextToken();
		Header h=systab.getH(systab.Search(name));
		token.nextToken();
	WriteFile up =new WriteFile(h);
	String attname[]=new String[10];int i=0;
	String[] attvalue=new String[10];
	String tem=null;
	int[] index=new int[10];
	while(token.hasMoreTokens())
	{
	 tem=token.nextToken();
	 if(tem.equals("where"))
	 break;
	 	
	attname[i]=tem;
	String attri[]=h.getAttri();
	int k;
	for( k=0;k<attri.length;k+=2)
{
		if(attri[k].trim().equals(attname[i]))
{	index[i]=k/2;
	break;}}
	if(k==attri.length) {error.setText("no such attribute name");return;}
	System.out.println("index is "+index[i]);
	
	 attvalue[i]=token.nextToken();
	 i++;
}
String con=token.nextToken();
String conval=token.nextToken();

if(con.equals(h.getKey().trim()))
up.update(conval,attvalue,index);
else{
int k;	String attri[]=h.getAttri();

	for( k=0;k<attri.length;k+=2)
{
		if(attri[k].trim().equals(con))
	break;
	if(k==attri.length) {error.setText("no such attribute name");return;}
}
up.update(conval,k/2,attvalue,index);
	
	
}
up.close();
error.append("finish update\n");
}
}

}});
	
	
	
		
		
	
		
		
		
		
			
			
			
			
				
			
					
					
	
        
        
        
        
        
        	JPanel pane=new JPanel();

        pane.add(button1);
        pane.add(button2);
                pane.add(button3);

  
       

        
		
		Container container=getContentPane();container.setLayout(new BorderLayout());
		container.add(pane,BorderLayout.NORTH);
		        container.add(new JScrollPane(text), BorderLayout.CENTER);

		container.add(error,BorderLayout.SOUTH);
		setSize(500,500);
		    setVisible(false);    

	}
		
/*	
	 private void createFile(String na)
	 {
	 		try{
		File fileName=new File(na);	 	
	 	fileName.createNewFile();	
	 	}
			catch(IOException e){
				JOptionPane.showMessageDialog(null,na+"not exist.Failed to create","Error",JOptionPane.INFORMATION_MESSAGE);
			}

	 	

	 		RandomAccessFile file=new RandomAccessFile(fileName,"rw");


	 		
	 		Record blank=new Record();
	 		for(int count=0;count<50;count++)
	 		blank.write(file);
	 		file.close();
	 		
	 		JOptionPane.showMessageDiglog(null,"Created file"+fileName.getName(),"Status",JOptionPane.INFORMATION_MESSAGE);
	 		System.exit(0);
	     }
	     catch(IOException e){
	     	JOptionPane.showMessageDialog(null,"Error processing file","Error processing file",JOptionPane.ERROR_MESSAGE);
	     	
	        system.exit(1);
	     }
	   }


	
	*/
	
	
	
	
	
	
	
	

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -