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

📄 jdbcdataconn1.java

📁 一个简单的C/S模式考试系统
💻 JAVA
字号:
//配置考生表专用类
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
public class JdbcDataConn1 extends Frame implements ItemListener,ActionListener{
	Connection conUser;
	Statement cmdUser;
	ResultSet rsUser;
	boolean blnSuccessfulOpen=false;
	
	String dbname="test";
	String user="123";
	String pass="s";
	String db="";
	Choice lstNames=new Choice();
	TextField txtId=new TextField(10);
	TextField txtName=new TextField(10);
    Choice txtSex=new Choice();
    TextField txtTime=new TextField(9);
    Button btnAdd=new Button("增加");
    Button btnEdit=new Button("保存");
    Button btnDelete=new Button("删除");
    Button btnCancel=new Button("取消");
    Button btnExit=new Button("退出");
    Label lblMessage=new Label("       ");
    //  public static void main(String args[])
    //  {
  // JdbcDataConn1 thisApp=new JdbcDataConn1();
    
   //thisApp.createInterFace("test","","","access");	
    //  }
    public void createInterFace(String dbname,String user,String pass,String db){
    	this.dbname=dbname;
    	this.user=user;
    	this.pass=pass;
    	this.db=db;
    	loadDatabase();
    	if(blnSuccessfulOpen){
    		setTitle("配置用户表");
    		//addWindowListener(new WindowAdapter(){
    		//	public void windowClosing(WindowEvent event)
    		//	{stop();
    		//	System.exit(0);
    		//		}});
    	setLayout(new BorderLayout());
    	//北区
    	Panel pnlTop=new Panel(new GridLayout(2,2,10,10));
    	pnlTop.setBackground(new Color(244,255,254));
    	pnlTop.add(new Label("考号"));
    	lstNames.insert("请选择考号",0);
    	pnlTop.add(lstNames);
    	pnlTop.add(new Label("     "));
    	add(pnlTop,"North");
    	//中区
    	 Panel pnlMiddle=new Panel(new GridLayout(5,2,10,10));
    	 pnlMiddle.setBackground(new Color(244,255,254));
    	 pnlMiddle.getInsets();//得到panel的大小
    	 pnlMiddle.add(new Label("考号"));
    	 pnlMiddle.add(txtId);
    	 pnlMiddle.add(new Label("姓名"));
    	 pnlMiddle.add(txtName);
    	 pnlMiddle.add(new Label("性别"));
    	 txtSex.add("男");txtSex.add("女");
    	 pnlMiddle.add(txtSex);
    	 pnlMiddle.add(new Label("考试时间(分钟)"));
    	 pnlMiddle.add(txtTime);
    	 setTextToNotEditable();
    	 Panel pnlLeftButtons=new Panel(new GridLayout(0,2,10,10));
    	 Panel pnlRightButtons=new Panel(new GridLayout(0,3,10,10));
    	 pnlLeftButtons.setBackground(new Color(244,255,254));
    	 pnlRightButtons.setBackground(new Color(244,255,254));
    	 pnlLeftButtons.add(btnAdd);
    	 btnAdd.addActionListener(this);
    	 pnlLeftButtons.add(btnEdit);
    	 btnEdit.addActionListener(this);
    	 pnlRightButtons.add(btnDelete);
    	 btnDelete.addActionListener(this);
    	 pnlRightButtons.add(btnCancel);
    	 btnCancel.addActionListener(this);
    	 btnCancel.setEnabled(false);
    	 pnlRightButtons.add(btnExit);
    	 btnExit.addActionListener(this);
    	 pnlMiddle.add(pnlLeftButtons);
    	 pnlMiddle.add(pnlRightButtons);
    	 add(pnlMiddle,"Center");
    	 add(lblMessage,"South");
    	 lblMessage.setForeground(Color.red);
    	 lblMessage.setBackground(new Color(244,255,254));
    	 lblMessage.setText("本行显示数据库考生表操作中的错误");
    	 setSize(400,300);this.setLocation(200,200);
    	 setVisible(true);
    	 this.setBackground(new Color(244,255,254));
    	  	}
   
    else
    {
    	stop();
    	System.exit(-1);
    	
    } }
    public Insets insets(){
    	return new Insets(40,15,15,15);
    }
    public void loadDatabase(){
    if(this.db=="sqlserver")
    {	try{
    		Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    	}
    	catch(ClassNotFoundException err){
    		lblMessage.setText("驱动未找到");
    	}
    	try{
    		conUser=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName="+dbname,user,pass);
    		cmdUser=conUser.createStatement();
    		rsUser=cmdUser.executeQuery("select * from user1");
    		loadNames(rsUser);
    		blnSuccessfulOpen=true;
    	}
    	catch(SQLException error){
    		lblMessage.setText("Error:"+error.toString());
    	}}
    if(this.db=="access")
    {	try{
    		Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    	}
    	catch(ClassNotFoundException err){
    		lblMessage.setText("驱动未找到");
    	}
    	try{
    		conUser=DriverManager.getConnection("jdbc:odbc:"+dbname,user,pass);
    		cmdUser=conUser.createStatement();
    		rsUser=cmdUser.executeQuery("select * from user1");
    		loadNames(rsUser);
    		blnSuccessfulOpen=true;
    	}
    	catch(SQLException error){
    		lblMessage.setText("Error:"+error.toString());
    	}}
    	if(this.db=="mysql")
    {	try{
    		Class.forName("com.mysql.jdbc.Driver");
    	}
    	catch(ClassNotFoundException err){
    		lblMessage.setText("驱动未找到");
    	}
    	try{
    		conUser=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/"+dbname+"?user="+user+"&password="+pass);
    		cmdUser=conUser.createStatement();
    		rsUser=cmdUser.executeQuery("select * from user1");
    		loadNames(rsUser);
    		blnSuccessfulOpen=true;
    	}
    	catch(SQLException error){
    		lblMessage.setText("Error:"+error.toString());
    	}}
    	if(this.db=="access数据库直连")
    {	try{
    		Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    	}
    	catch(ClassNotFoundException err){
    		lblMessage.setText("驱动未找到");
    	}
    	try{
    		conUser=DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+dbname,user,pass);
    		cmdUser=conUser.createStatement();
    		rsUser=cmdUser.executeQuery("select * from user1");
    		loadNames(rsUser);
    		blnSuccessfulOpen=true;
    	}
    	catch(SQLException error){
    		lblMessage.setText("Error:"+error.toString());
    	}}	
    	
    }	 
    	 
    public void loadNames(ResultSet rsUser){
    	try{
    		while(rsUser.next())
    		lstNames.add(rsUser.getString(1));
    		lstNames.addItemListener(this);
    		
    		
    	}
    	catch(SQLException error){
    		lblMessage.setText("显示题数出错"+error.toString());
    	}
    }	 
    public void itemStateChanged(ItemEvent event){
    	String strLastName=lstNames.getSelectedItem();
    	lblMessage.setText("");
    	try{
    		rsUser=cmdUser.executeQuery("select * from user1 where id='"+strLastName+"'");
    		txtId.setText(strLastName);
    		
    		displayRecord(rsUser);
    		setTextToEditable();
    	}
    	catch(SQLException error){
    		lblMessage.setText("出错"+error.toString());
    	}
    }	 
    public void displayRecord(ResultSet rsUser){
    	try{
    		if(rsUser.next()){
    			txtName.setText(rsUser.getString(2));
    			txtSex.select(rsUser.getString(3));
    			txtTime.setText(rsUser.getString(4));
    			lblMessage.setText("");
    		}
    	}
    	catch(SQLException error){
    		lblMessage.setText("出错"+error.toString());
    	}
    }	 
    public void actionPerformed(ActionEvent event){
    	Object objSource=event.getSource();
    	if(objSource==btnAdd&&event.getActionCommand()=="增加")
    	Add();
    	else if(objSource==btnAdd)
    	Save();
    		else if(objSource==btnEdit)
    	Edit();
    		else if(objSource==btnDelete)
    	Delete();
    	else if(objSource==btnCancel)
    	    	Cancel();
    	else if(objSource==btnExit){
    		stop();dispose();
    	}
    	}	 
    public void setTextToNotEditable(){
    	txtId.setEditable(false);
    	txtName.setEditable(false);
    	
    	txtTime.setEditable(false);
    	
    }	 
     public void setTextToEditable(){
    	txtId.setEditable(true);
    	txtName.setEditable(true);
    	
    	txtTime.setEditable(true);
    	
    }
     public void clearTextFields(){
    	txtId.setText("");
    	txtName.setText("");
    	txtSex.select(1);
    	txtTime.setText("");
    	
    }
    public void Add(){
    	lblMessage.setText("    ");
    	setTextToEditable();
    	clearTextFields();
    	txtId.requestFocus();//此方法为组件请求焦点
    	btnAdd.setLabel("确定");
    	btnCancel.setEnabled(true);
    	btnDelete.setEnabled(false);
    	btnEdit.setEnabled(false);
    }	 	 	 
    
    public void Save(){
        String sa1="insert into user1([id],[name],[sex],[time]) values('"+txtId.getText()+"','"+txtName.getText()+"','"+txtSex.getSelectedItem()+"','"+txtTime.getText()+"')";
    	if(this.db=="mysql")
         sa1="insert into user1(id,name,sex,time) values('"+txtId.getText()+"','"+txtName.getText()+"','"+txtSex.getSelectedItem()+"','"+txtTime.getText()+"')";   
        if(txtId.getText().length()==0||txtName.getText().length()==0)
    	lblMessage.setText("不能为空");
    	else{
    		try{
    			cmdUser.executeUpdate(sa1);
    			lstNames.add(txtId.getText());
    			Cancel();
    			lblMessage.setText("保存成功");
    		}
    		catch(SQLException error){
    			lblMessage.setText("错误"+error.toString());
    			
    		}
    	}
    }	 
    public void Delete(){
    	int intIndex=lstNames.getSelectedIndex();
    	String strLastName=lstNames.getSelectedItem();
        String de1="delete  from user1 where [id]='"+strLastName+"'";
        if(this.db=="mysql")
            de1="delete  from user1 where id='"+strLastName+"'";
    	if(intIndex==0)
    	lblMessage.setText("请选择要删除的题号");
    	else{
    		try{
    			cmdUser.executeUpdate(de1);
    			clearTextFields();
    			lstNames.remove(intIndex);
    			lblMessage.setText("记录已删除");
    		}
    		catch(SQLException error){
    			lblMessage.setText("错误"+error.toString());
    			
    		}
    	}
    }	 
    public void Cancel(){
    	btnDelete.setEnabled(true);
    	btnEdit.setEnabled(true);
    	btnCancel.setEnabled(false);
    	btnAdd.setLabel("增加");
    	clearTextFields();
    	lblMessage.setText("");
    }	 
   public void Edit(){
   int intIndex=lstNames.getSelectedIndex();
   	if(intIndex==0)
    	lblMessage.setText("选择要修改的记录");
    	else{
    		String strLastName=lstNames.getSelectedItem();
    		try{
    			cmdUser.executeUpdate("update user1 set [id]='"+txtId.getText()+"',[name]='"+txtName.getText()+"',[sex]='"+txtSex.getSelectedItem()+"',[time]='"+txtTime.getText()+"' where [id]='"+strLastName+"'");
    		  lblMessage.setText("修改成功");
    		if(!strLastName.equals(txtId.getText()))
    		    		{
    			lstNames.remove(intIndex);
    			lstNames.add(txtId.getText());
    		}
    		}
    		catch(SQLException error){
    			lblMessage.setText("错误"+error.toString());
    			
    		}
    	}
   }
   public void stop(){
   	try{
   		if(conUser!=null)
   		conUser.close();
   	}
   	catch(SQLException error){
   		lblMessage.setText("连接无法结束");
   	}
   }
 
    }

⌨️ 快捷键说明

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