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

📄 student.java

📁 一个使用JDBC的简单的用java连接Sybase数据库的例子
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import java.awt.*;
import java.sql.*;

public class student extends Frame
{
	public student()                              //构造函数
	{
		super("student");
		pack();
		reshape(200,100,600,400);
		show();
	}
	
	public static void main(String args[])         //定义主窗口
	{
		student myWindow=new student();
		MenuBar m=new MenuBar();
		Menu m1=new Menu("文件");
		
		m1.add(new MenuItem("添加数据"));
		m1.add(new MenuItem("删除数据"));
		m1.add(new MenuItem("修改数据"));
		m1.add(new MenuItem("查询数据"));
		m1.add(new MenuItem("退出系统"));
		m.add(m1);
 		
 		myWindow.setMenuBar(m);
 		
 		Panel p=new Panel();
 		p.add(new Button("添加数据"));
 		p.add(new Button("删除数据"));
 		p.add(new Button("修改数据"));
 		p.add(new Button("查询数据"));
 		p.add(new Button("退出系统"));
 		
 		myWindow.add("South",p);
 		
 		Panel ps=new Panel();
 		ps.setFont(new Font("宋体",Font.PLAIN,30));
 		ps.add(new Label("简单学生数据库管理"));
 		myWindow.add(ps);
 		myWindow.setTitle("简单学生数据库管理");
 		myWindow.show();
 	}
 	
 	public boolean handleEvent(Event e)                    //处理主窗口事件
 	{
 		if(e.id==Event.ACTION_EVENT)
 		{
 			if(("添加数据").equals(e.arg))
 			{
 				new appendWindow(this.location());
 			}
 			if(("删除数据").equals(e.arg))
 			{
 				new deleteWindow(this.location());
 			}
 			if(("修改数据").equals(e.arg))
 			{
 				new changeWindow(this.location());
 			}
 			if(("查询数据").equals(e.arg))
 			{
 				new queryWindow(this.location());
 			}
 			if(("退出系统").equals(e.arg))
 			{
 				System.exit(0);
 				return true;
 			}
 		}
 		return false;
	 }
	 
	 class appendWindow extends Frame                     //创建用于添加数据的窗口
	 {
	 	TextField t1,t2,t3,t4,t5,t6;
	 	int x,y;										  //用于控制窗口的显示位置
	 	
	 	appendWindow(Point point)
	 	{
	 		super("添加客户数据");
	 		setBackground(new Color(215,215,215));
	 		reshape(20+point.x,20+point.y,350+point.x,350+point.y);
	 		setLayout(new GridLayout(11,0,5,4));
	 		
	 		t1=new TextField();
	 		t2=new TextField();
	 		t3=new TextField();
	 		t4=new TextField();
	 		t5=new TextField();
	 		t6=new TextField();
	 		
	 		Panel pp=new Panel();
	 		pp.add(new Label("请输入详细信息"));
	 		add(pp);
	 		
	 		Panel p1=new Panel();
	 		p1.setLayout(new BorderLayout());
	 		p1.add("West",new Label("学号"));
	 		p1.add("Center",t1);
	 		add(p1);
	 		Panel p2=new Panel();
	 		p2.setLayout(new BorderLayout());
	 		p2.add("West",new Label("姓名"));
	 		p2.add("Center",t2);
	 		add(p2);
	 		Panel p3=new Panel();
	 		p3.setLayout(new BorderLayout());
	 		p3.add("West",new Label("年龄"));
	 		p3.add("Center",t3);
	 		add(p3);
	 		Panel p4=new Panel();
	 		p4.setLayout(new BorderLayout());
	 		p4.add("West",new Label("性别"));
	 		p4.add("Center",t4);
	 		add(p4);
	 		Panel p5=new Panel();
	 		p5.setLayout(new BorderLayout());
	 		p5.add("West",new Label("电子邮件"));
	 		p5.add("Center",t5);
	 		add(p5);
	 		Panel p6=new Panel();
	 		p6.setLayout(new BorderLayout());
	 		p6.add("West",new Label("电话"));
	 		p6.add("Center",t6);
	 		add(p6);
	 		
	 		Panel p7=new Panel();
	 		p7.add(new Button("确定"));
	 		p7.add(new Button("清除"));
	 		p7.add(new Button("退出"));
	 		add(p7);
	 		add(new Label(""));
	 		
	 		Panel p8=new Panel();
	 		p8.add(new Label("学生学号为不超过10位的整数、年龄为不超过4位的整数"));
	 		add(p8);
	 		
	 		Panel p9=new Panel();
	 		p9.add(new Label("学生姓名不能超过10个字;电子邮件不超过30个字"));
	 		add(p9);
	 		show();
	 	}
	 	
	 	public boolean handleEvent(Event e)			//处理添加数据的窗口的事件
	 	{
	 		if(e.id==Event.ACTION_EVENT)
	 		{
	 			if(("确定").equals(e.arg))
	 			{
	 				appendData();
	 			}
	 			
	 			if(("清除").equals(e.arg))
	 			{
	 				t1.setText("");
	 				t1.repaint();
	 				t2.setText("");
	 				t2.repaint();
	 				t3.setText("");
	 				t3.repaint();
	 				t4.setText("");
	 				t4.repaint();
	 				t5.setText("");
	 				t5.repaint();
	 				t6.setText("");
	 				t6.repaint();
	 			}
	 			
	 			if(("退出").equals(e.arg))
	 			{
	 				dispose();
	 				return true;
	 			}
	 		}
	 		return false;
	 	}
	 	
	 	public void appendData()				//添加数据的程序
	 	{
	 		String st1,st2,st3,st4,st5,st6;
	 		st1=t1.getText();
	 		st2=t2.getText();
	 		st3=t3.getText();
	 		st4=t4.getText();
	 		st5=t5.getText();
	 		st6=t6.getText();
	 		
	 		if(st1.length()==0)
	 		{
	 			new myDialog(this,"没有输入学号",this.location());
	 		}
	 		if(st2.length()==0)
	 		{
	 			new myDialog(this,"没有输入姓名",this.location());
	 		}
	 		if(st3.length()==0)
	 		{
	 			new myDialog(this,"没有输入年龄",this.location());
	 		}
	 		if(st4.length()==0)
	 		{
	 			new myDialog(this,"没有输入性别",this.location());
	 		}
	 		if(st5.length()==0)
	 		{
	 			new myDialog(this,"没有输入电子邮件",this.location());
	 		}
	 		if(st6.length()==0)
	 		{
	 			new myDialog(this,"没有输入电话",this.location());
	 		}
	 		else											//连接数据库并进行操作
	 		{
	 			try											//加载jdbc-odbc桥的驱动
	 			{
	 				Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
	 			}
	 			catch(Exception e){}
	 			
	 			try                                          //写入数据库
	 			{
	 				String url="jdbc:odbc:student";
	 				Connection cn=DriverManager.getConnection(url,"dba","sql");
	 				String str="INSERT INTO student(ID,Name,age,sex,email,tel)VALUES(?,?,?,?,?,?)";
	 				PreparedStatement ps=cn.prepareStatement(str);
	 				
	 				ps.setInt(1,Integer.parseInt(st1));
	 				ps.setString(2,st2);
	 				ps.setInt(3,Integer.parseInt(st3));
	 				ps.setString(4,st4);
	 				ps.setString(5,st5);
	 				ps.setString(6,st6);
	 				
	 				ps.executeUpdate();
	 				
	 				new myDialog(this,"已成功把数据存入数据库",this.location());
	 				cn.close();
	 			}
	 			catch(SQLException e)
	 			{
	 				if(e.getErrorCode()==8152)
	 				{
	 					new myDialog(this,"输入的数据超过指定长度",this.location());
	 				}
	 				else if(e.getErrorCode()==2627)
	 				{
	 					new myDialog(this,"已存在学号相同的学生",this.location());
	 				}
	 				else
	 				{
	 					new myDialog(this,"程序出错信息:"+e.getMessage(),this.location());
	 				}
	 			}
	 		}
	 	}
	 }
	 
	
	
	class deleteWindow extends Frame						//创建用于删除数据的窗口
	{
		TextField t1;
		int x,y;
		
		deleteWindow(Point point)
		{
			super("删除学生数据");
			setBackground(new Color(215,215,215));
			reshape(80+point.x,80+point.y,200+point.x,120+point.y);
	 		setLayout(new GridLayout(5,0,2,5));
	 		
	 		t1=new TextField("");
	 		add(new Label(""));
	 		Panel pp=new Panel();
	 		pp.add(new Label("请输入想要删除的学生的学号"));
	 		add("North",pp);
	 		
	 		Panel p3=new Panel();
	 		p3.setLayout(new GridLayout(0,3,0,0));
	 		p3.add("West",new Label(""));
	 		p3.add("Center",t1);
	 		p3.add("East",new Label(""));
	 		add("Center",p3);
	 		
	 		Panel p=new Panel();
	 		p.add(new Button("确定"));
	 		p.add(new Button("清除"));
	 		p.add(new Button("退出"));
	 		add("South",p);
	 		show();
	 	}
	 	
	 	public boolean handleEvent(Event e)			//处理删除数据的窗口的事件
	 	{
	 		if(e.id==Event.ACTION_EVENT)
	 		{
	 			if(("确定").equals(e.arg))
	 			{
	 				deleteData();
	 			}
	 			
	 			if(("清除").equals(e.arg))
	 			{
	 				t1.setText("");
	 				t1.repaint();
	 			}
	 			
	 			if(("退出").equals(e.arg))
	 			{
	 				dispose();
	 				return true;
	 			}
	 		}
	 		return false;
	 	}
	 	
	 	public void deleteData()				//删除数据的程序
	 	{
	 		String st1;
	 		st1=t1.getText();
	 		if(st1.length()==0)
	 		{
	 			new myDialog(this,"没有输入学号",this.location());
	 		}
	 		else											//连接数据库并进行操作
	 		{
	 			try											//加载jdbc-odbc桥的驱动
	 			{
	 				Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
	 			}
	 			catch(Exception e){}
	 			
	 			try                                          //更新数据库
	 			{
	 				String url="jdbc:odbc:student";
	 				Connection cn=DriverManager.getConnection(url,"dba","sql");
	 				String str="DELETE FROM student WHERE ID=?";
	 				PreparedStatement ps=cn.prepareStatement(str);
	 				
	 				ps.setInt(1,Integer.parseInt(st1));
	 				int n=ps.executeUpdate();
	 				
	 				if(n!=0)
	 				{
	 					new myDialog(this,"已成功删除学生信息",this.location());
	 				}
	 				else
	 				{
	 					new myDialog(this,"输入的学号不存在",this.location());
	 				}
	 				cn.close();
	 			}
	 			catch(Exception e)
	 			{
	 				new myDialog(this,"程序出错信息:"+e.getMessage(),this.location());
	 			}
	 		}
	 	}
	 }
	 
	 class myDialog extends Dialog
	 {
	 	int x,y;
	 	myDialog(Frame f,String s,Point p)
	 	{
	 		super(f,true);
	 		add("Center",(new Panel()).add(new Label(s)));
	 		x=40+p.x;
	 		y=40+p.y;
	 		move(x,y);
	 		pack();
	 		show();
	 	}
	 	
	 	public boolean handleEvent(Event e)
	 	{
	 		if(e.id==Event.WINDOW_DESTROY)
	 		{
	 			dispose();
	 			return true;
	 		}
	 		return false;
	 	}
	 }
	 
	 
	 class changeWindow extends Frame
	 {
	 	TextField t1;
		int x,y;
		
		changeWindow(Point point)
		{
			super("修改学生数据");
			setBackground(new Color(215,215,215));
			reshape(80+point.x,80+point.y,200+point.x,120+point.y);
	 		setLayout(new GridLayout(5,0,2,5));
	 		
	 		t1=new TextField("");
	 		add(new Label(""));
	 		Panel pp=new Panel();
	 		pp.add(new Label("请输入想要修改的学生的学号"));

⌨️ 快捷键说明

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