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

📄 datebase.java

📁 模拟SQL功能的数据库模拟程序,语言同SQL
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.border.*;
import java.util.*;
import javax.swing.event.*;
import java.util.regex.*;
import java.io.*;
class Writerin{
	Writerin(String[][][] date,int[][] asi) throws Exception{
	   FileWriter tofile=new FileWriter("data.txt");  
	   BufferedWriter get=new BufferedWriter(tofile);
	   for(int i=0;i<10;i++)
	   {
			  for(int j=0;j<=asi[1][i];j++)
			  {
			      for(int k=0;k<=asi[2][i];k++)
				  {
					  get.write(date[j][k][i]);
				      get.write(" ");
				  }
			      get.newLine();
		      }
			  get.newLine();
	   }
	 
	    get.close();	
    }
}
class List extends JFrame{
//	JTextArea ta;
	Container pane;
	JTable table;
	List(String s1,String[][][] date,int[][] asi,int c)
	{
		super(s1);
		String[][] tw;
		int m=0,n=0,len=0;
		tw=new String[100][50];
		for(int i=0;i<100;i++)
		{
			for(int j=0;j<50;j++)
			{
				tw[i][j]="";
			}
		}
		String[] name;
		for(int i=0;i<c;i++)
		{
			if(asi[2][i]>=len)
			{
				len=asi[2][i];
			}
		}
		name=new String[len];
		name[0]="表名";
		for(int i=1;i<len;i++)
		{
			name[i]="列名";
		}
		for(int i=0;i<10;i++)
		{
			for(int j=0;j<=asi[1][i];j++)
			{
				n=0;
				for(int k=0;k<=asi[2][i];k++)
				{
					tw[m][n]=date[j][k][i];
					n=n+1;
				}
				m=m+1;
			}
		}
	    //JFrame frame=new JFrame("查看数据库中具体信息");
	/*	ta=new JTextArea(10,20);
		for(int i=0;i<10;i++)
		{
			for(int j=0;j<10;j++)
			{
				for(int k=0;k<40;k++)
				{
					ta.append(date[j][k][i]+"       ");
				}
				ta.append("\n");
			}
			ta.append("\n");//追加文本
		}*/
		pane=getContentPane();
		table=new JTable(tw,name);
		table.setRowHeight(20);
		pane.removeAll();
		pane.add(new JScrollPane(table),BorderLayout.CENTER);
		//frame.a
	//	pane.add(ta);
		setBounds(450,350,400,300);
	    //pack();
	    setVisible(true);
	    validate();
	    setDefaultLookAndFeelDecorated(true);
	    //setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	  //  (ta.getDocument()).addDocumentListener(this);
	}
	/*public void changedUpdate(DocumentEvent e)
	{
		String newt;
		newt=ta.getText();
		if(newt!=ta.getText())
		{
			;
		}
	}
	public void insertUpdate(DocumentEvent e){
	}
	public void removeUpdate(DocumentEvent e){
	}*/

}
class shadow extends JFrame
{
	JTextArea ta;
	Container spane;
	shadow(String[] shadow1,int[][] asi,int flas,int shadow,String[][][] date,String want){
	JFrame frame=new JFrame("查询结果:");
	ta=new JTextArea(10,20);
	if(shadow==0){
	   for(int i=1;i<=asi[1][flas];i++)
	   {
	   ta.append(shadow1[i]);
	   ta.append("\n");//追加文本
	   }
	}
	else if(shadow==2){
		for(int i=1;i<=asi[1][flas];i++){
			for(int j=1;j<=asi[2][flas];j++)
			{
				ta.append(date[i][j][flas]);
				ta.append(" ");
			}
			ta.append("\n");
		}
	}
	else if(shadow==3){
		ta.append(want);
	}
	
	spane=getContentPane();
	spane.add(ta);
	setBounds(450,350,400,300);
	//pack();
	setVisible(true);
	validate();
	setDefaultLookAndFeelDecorated(true);
	}
}
class Helplist extends JFrame{
	JLabel helplist1;
	JLabel helplist2;
	JLabel helplist3;
	JLabel helplist4;
	JLabel helplist5;
	JLabel helplist6;
	JLabel helplist7;
	JLabel helplist8;
	JLabel helplist9;
	JLabel helplist10;
	Container pane1;      
	Helplist(String s2){
		super(s2);
		helplist1=new JLabel("建立表格格式如下:");
		helplist2=new JLabel("create table 表名(列名1 类型[长度],列名2 类型[长度]...;)");
		helplist3=new JLabel("删除表格格式如下:");
		helplist4=new JLabel("drop table 表名;");
		helplist5=new JLabel("插入表格格式如下:");
		helplist6=new JLabel("insert into 关系名 values('列名','列名'...);");
		helplist7=new JLabel("添加属性格式如下:");
		helplist8=new JLabel("alter table 表名 add 列名 类型[长度];");
		helplist9=new JLabel("删除属性格式如下:");
		helplist10=new JLabel("drop table 表名 add 列名");
		pane1=getContentPane();
		GridLayout grid=new GridLayout(6,1);
		pane1.setLayout(grid);
		pane1.add(helplist1);
		pane1.add(helplist2);
		pane1.add(helplist3);
		pane1.add(helplist4);
		pane1.add(helplist5);
		pane1.add(helplist6);
		pane1.add(helplist7);
		pane1.add(helplist8);
		pane1.add(helplist9);
		pane1.add(helplist10);
        setBounds(450,350,400,300);
	    //pack();
	    setVisible(true);
	    validate();
	    setDefaultLookAndFeelDecorated(true);
	
	}
	
}
class Outlook extends JFrame implements ActionListener,DocumentListener{
		
		JMenuBar menubar;
		JMenu menu,help;
		JTextArea text;
		JMenuItem itemNew,itemLook,itemFind,help1,itemSave;
		JLabel label;
		JButton sure,change,look,find;
		Box baseBox,boxV1,boxV2;
		Container con;
		JPanel panel;
		int n=0,m=0,a=0,b=0,c=0,y=0;
		String[][][] date;
		int asi[][];
		Outlook(String s){
			//JFrame f=new JFrame("date base program");
			super(s);
			date=new String[100][100][20];
			asi=new int[3][20];
		    sure=new JButton("确定");
		    change=new JButton("重新输入");
		    look=new JButton("查看");
		    find=new JButton("查询数据");
		    label=new JLabel();
		    menubar=new JMenuBar();
		    menu=new JMenu("文件");
		    help=new JMenu("帮助");
		    itemNew=new JMenuItem("新建");
		    itemLook=new JMenuItem("查看");
		    itemFind=new JMenuItem("查询数据");
		    help1=new JMenuItem("帮助");
		    itemSave=new JMenuItem("保存");
		    menu.add(itemNew);
		    menu.add(itemLook);
		    menu.add(itemSave);
		    menu.add(itemFind);
		    help.add(help1);
		    menubar.add(menu);
		    menubar.add(help);
		    setJMenuBar(menubar);
		    text=new JTextArea();
		    con=getContentPane();
		    panel=new JPanel();
		    panel.setLayout(new GridLayout(2,2));
		    panel.add(sure);
		    panel.add(change);
		    panel.add(look);
		    panel.add(find);
		    con.setLayout(new BorderLayout());
		    con.add(label,BorderLayout.NORTH);
		    con.add(text,BorderLayout.CENTER);
		    con.add(panel,BorderLayout.SOUTH);
		    //con.add(baseBox);
		    setBounds(350,400,350,250);
		    //pack();
		    setVisible(true);
		    validate();
	        this.setDefaultLookAndFeelDecorated(true);
	        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            sure.setEnabled(false);
            sure.addActionListener(this);
	        look.addActionListener(this);
	        change.addActionListener(this);
	        find.addActionListener(this);
	        itemLook.addActionListener(this);
	        itemSave.addActionListener(this);
	        help1.addActionListener(this);
	        (text.getDocument()).addDocumentListener(this);
	       
		    
		    
	    }
	    public void changedUpdate(DocumentEvent e)
	    {
		    if(!text.getText().equals(""))
	        {
	        	sure.setEnabled(true);
	        	//change.setEnabled(true);
	        }
	        else
	        {
	        	sure.setEnabled(false);
	        	//change.setEnabled(false);
	        }
	    }
    	public void insertUpdate(DocumentEvent e){
    		changedUpdate(e);
     	}
    	public void removeUpdate(DocumentEvent e){
    		changedUpdate(e);
	    }

	    public void actionPerformed(ActionEvent e){
	    	String t;
	    	char ch2[]=new char[100];
	    	final char ch1[][]=new char[6][6]; 
	    	ch1[0]=new char[]{'c','r','e','a','t','e'};
	    	ch1[1]=new char[]{'d','r','o','p'};
	    	ch1[2]=new char[]{'i','n','s','e','r','t'};
	    	ch1[3]=new char[]{'d','e','l','e','t','e'};
	    	ch1[4]=new char[]{'a','l','t','e','r'};
	    	ch1[5]=new char[]{'s','e','l','e','c','t'};
	    	int asa;//为了存放每个表存放到了多少行的元素,以便继续下次存放;有待初始化
	    	if(y==0)
	    	{
	    	
	    	    for(int i=0;i<20;i++)
	    	   {
	    		    for(int j=0;j<100;j++)
	    		    {
	    			    for(int k=0;k<100;k++)
	    			    {
	    				    date[k][j][i]="";
	    			    }
	    		    }
	    	   }
	    	   for(int i=0;i<20;i++)
	    	   {
	    	   	   asi[1][i]=1;
	    	   }
	    	   y=1;
	    	}
	
            if(e.getSource()==sure){
	    		t=text.getText();
	    		text.setText(null);
                t.getChars(0,t.length()-1,ch2,0);
                for(int i=0;i<6;i++)
                {
                	n=0;
                	for(int j=0;j<4;j++)
                	{
                		if(ch1[i][j]==ch2[j])
                		{
                			n=n+1;
                		}
                	}
                	if(n==4){m=i;}
                }
                if(m==0){                         //建表
                	int num=0,sta=0,end=0,num8=0,an,bn;
                	an=0;
                	bn=0;
                	for(int i=0;i<ch2.length;i++)
                	{
                		if((ch2[i]==' ')||(ch2[i]=='('))
                		{
                			num=num+1;
                			num8=i;
                			if(num==2)
                			{
                			    sta=i;
                			}
                	    	else
                	     	if(num==3){
                		     	end=i;
                		     	end=end-sta;
                		     	
                		    }
                		}
                	}
                	date[0][0][c]=new String(ch2,sta+1,end-1);
                	bn=bn+1;
                	int num1=0,num2=0,star=0,endr=0;
                	for(int i=0;i<ch2.length;i++)
                	{
                		if((ch2[i]=='(')||(ch2[i]==','))
                		{
                			num1=num1+1;
                			star=i;
                			
                		}
                		else
                		    if(ch2[i]==' ')
                		    {
                		    	num2=num2+1;
                		    	endr=i;
                		    	endr=endr-star;
                		    	if((num1==num2-2)&&(num1>=1))
                		        {
                		         	date[0][bn][c]=new String(ch2,star+1,endr-1);
                			        bn=bn+1;
                		        }
                		    }
                		
                		
                	}
                	asi[2][c]=bn;
                    asi[0][c]=c;
                    asi[1][c]=1;
                	c=c+1;
                	
                	
                	
                }
                else if(m==1){                      //删除表
                	int num3=0,num4=0,stad=0,endd=0,num9=0;
                	String name;
                	name="";
                	for(int i=0;i<ch2.length;i++)
                	{
                		if(ch2[i]==' ')
                		{
                			num3=num3+1;
                			num9=i;
                			
                	    }
                	    if(num3==2)
                	    {
                	    	name=new String(ch2,num9,ch2.length-1-num9);
                	    }
                	   
                	}
                	for(int i=0;i<=c;i++)
                	{
                		if(date[0][0][i]==name)
                		{
                		    date[0][0][i]=null;
                		    for(int j=0;j<20;j++)
                		    {
                		    	for(int k=0;k<20;k++)
                		    	{
                		    		date[j][k][i]=null;
                		    	}
                		    }
                		}
                	}
              }
                else if(m==2){   
                          //插入表
                	int num4=0,num5=0,stai=0,endi=0,flag=0,num6=0,num6i=0,num7=0,num7i=0,num10=0,num11=0;
                	String namec,nameb;
                	namec="";
                    int ai=1,bi=1;
                	for(int i=0;i<ch2.length;i++)
                	{
                		if(ch2[i]==' ')

⌨️ 快捷键说明

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