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

📄 jdbcdataconn.java

📁 一个简单的C/S模式考试系统
💻 JAVA
字号:
//配置题库专用类
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
public class JdbcDataConn extends Frame implements ItemListener,ActionListener{
	Connection conAnswer;
	Statement cmdAnswer;
	ResultSet rsAnswer;
	boolean blnSuccessfulOpen=false;
	
	String dbname="test";
	String user="123";
	String pass="s";
	String db="";
	Choice lstNames=new Choice();
	Choice lstNames2=new Choice();
	int i=0;
	TextArea txtCon=new TextArea(200,200);
	TextField txta=new TextField(100);
    TextField txtb=new TextField(100);
    TextField txtc=new TextField(100);
    TextField txtd=new TextField(100);
    TextField txte=new TextField(2);
    Button btnAdd=new Button("增加");
    Button btnEdit=new Button("保存");
    Button btnDelete=new Button("清除");
    Button btnCancel=new Button("取消");
    Button btnExit=new Button("退出");
    Label lblMessage=new Label("       ");
    TextField lbl1=new TextField("试题类型");
    Panel psb=new Panel(new GridLayout(1,2));
    // public static void main(String args[])
   //  {
    //  JdbcDataConn thisApp=new JdbcDataConn();
    
  //thisApp.createInterFace("test.mdb","","","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.add(new Label("题号"));
    	lstNames.insert("请选择题号",0);
    	pnlTop.add(lstNames);
    	pnlTop.add(new Label("试题类型"));
    	pnlTop.setBackground(new Color(244,255,254));
    	lstNames2.insert("单选",0);lstNames2.insert("多选",1);lstNames2.insert("判断",2);
    	lstNames2.addItemListener(this);
    	lstNames2.setVisible(false);
    	lbl1.setVisible(false);
    	psb.add(lbl1);
    	psb.add(lstNames2);
    	psb.setVisible(true);
    	pnlTop.add(psb);
    	add(pnlTop,"North");
    	//中区
    	 Panel pnlMiddle=new Panel(new GridLayout(7,2,10,10));
         pnlMiddle.getInsets();//得到panel的大小
    	pnlMiddle.setBackground(new Color(244,255,254));
    	 pnlMiddle.add(new Label("题目"));
    	 pnlMiddle.add(txtCon);
    	 pnlMiddle.add(new Label("选项A"));
    	 pnlMiddle.add(txta);
    	 pnlMiddle.add(new Label("选项B"));
    	 pnlMiddle.add(txtb);
    	 pnlMiddle.add(new Label("选项C"));
    	 pnlMiddle.add(txtc);
         pnlMiddle.add(new Label("选项D"));
    	 pnlMiddle.add(txtd);
    	 pnlMiddle.add(new Label("答案:"));
    	 pnlMiddle.add(txte);
    	 setTextToNotEditable();
    	 Panel pnlLeftButtons=new Panel(new GridLayout(0,2,10,10));
    	 Panel pnlRightButtons=new Panel(new GridLayout(0,3,10,10));
    	 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);
    	 setSize(528,457);this.setLocation(200,200);
    	 setVisible(true);
    	 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{
    		conAnswer=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName="+dbname,user,pass);
    		cmdAnswer=conAnswer.createStatement();
    		rsAnswer=cmdAnswer.executeQuery("select * from answer");
    		loadNames(rsAnswer);
    		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{
    		conAnswer=DriverManager.getConnection("jdbc:odbc:"+dbname,user,pass);
    		cmdAnswer=conAnswer.createStatement();
    		rsAnswer=cmdAnswer.executeQuery("select * from answer");
    		loadNames(rsAnswer);
    		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{
    		conAnswer=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/"+dbname+"?user="+user+"&password="+pass);
    		cmdAnswer=conAnswer.createStatement();
    		rsAnswer=cmdAnswer.executeQuery("select * from answer");
    		loadNames(rsAnswer);
    		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{
    		conAnswer=DriverManager.getConnection("jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+dbname,user,pass);
    		cmdAnswer=conAnswer.createStatement();
    		rsAnswer=cmdAnswer.executeQuery("select * from answer");
    		loadNames(rsAnswer);
    		blnSuccessfulOpen=true;
    	}
    	catch(SQLException error){
    		lblMessage.setText("Error:"+error.toString());
    	}}	
    	
    }	 
    	 
    public void loadNames(ResultSet rsAnswer){
    	try{
    		while(rsAnswer.next())
    	{	lstNames.add(rsAnswer.getString(1));i++;}
    		lstNames.addItemListener(this);
    		
    		
    	}
    	catch(SQLException error){
    		lblMessage.setText("显示题数出错"+error.toString());
    	}
    }	 
    public void itemStateChanged(ItemEvent event){
    if(event.getSource()==lstNames)	
    {String strLastName=lstNames.getSelectedItem();
    	lblMessage.setText("");
    	try{
    		rsAnswer=cmdAnswer.executeQuery("select * from answer where index1='"+strLastName+"'");
    		//txtCon.setText(strLastName);
    		
    		displayRecord(rsAnswer);
    		setTextToEditable();
    	}
    	catch(SQLException error){
    		lblMessage.setText("出错"+error.toString());
    	}}
    	else{
    		System.out.print("正常");
    		}
    }	 
    public void displayRecord(ResultSet rsAnswer){
    	try{
    		String ssss="0";
    		String ssss2=null;
    		if(rsAnswer.next()){
    			txtCon.setText(rsAnswer.getString(2).trim());
    			ssss=rsAnswer.getString(8).trim();
    			System.out.print(ssss);
    			if(ssss.equals("a"))
    			{lbl1.setText("单选");
    			lbl1.setVisible(true);
    			txta.setVisible(true);
    			txtb.setVisible(true);
    			txtc.setVisible(true);
    			txtd.setVisible(true);
    	         }
    			if(ssss.equals("b"))
    			{lbl1.setText("多选");
    			lbl1.setVisible(true);
    			txta.setVisible(true);
    			txtb.setVisible(true);
    			txtc.setVisible(true);
    			txtd.setVisible(true);
    			
    	}
    			if(ssss.equals("c"))
    			{lbl1.setText("判断");
    			lbl1.setVisible(true);
    			txta.setVisible(false);
    			txtb.setVisible(false);
    			txtc.setVisible(false);
    			txtd.setVisible(false);}
    			if((ssss2=rsAnswer.getString(7).trim())!=null)
    			txte.setText(ssss2);
    			if((ssss2=rsAnswer.getString(3).trim())!=null)
    			{txta.setText(ssss2);}
    			else
    			txta.setText("");
    			System.out.print("这是"+ssss2+"异常");
    			if((ssss2=rsAnswer.getString(4).trim())!=null)
    			{txtb.setText(ssss2);}
    			else
    			txtb.setText("");
    			
    			if((ssss2=rsAnswer.getString(5).trim())!=null)
    			{txtc.setText(ssss2);}
    			else txtc.setText("");
    			
    			if((ssss2=rsAnswer.getString(6).trim())!=null)
    			{txtd.setText(ssss2);}
    			else txtd.setText("");
    			
    			
    			
    			lbl1.setEnabled(false);
    			lblMessage.setText("");
    			lstNames2.setVisible(true);
    			
    	
    		}
    	}
    	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(){
    	txtCon.setEditable(false);
    	txta.setEditable(false);
    	txtb.setEditable(false);
    	txtc.setEditable(false);
    	txtd.setEditable(false);
    	txte.setEditable(false);
    	
    }	 
     public void setTextToEditable(){
    	txtCon.setEditable(true);
    	txta.setEditable(true);
    	txtb.setEditable(true);
    	txtc.setEditable(true);
    	txtd.setEditable(true);
    	txte.setEditable(true);
    	
    }
     public void clearTextFields(){
    	txtCon.setText("");
    	txta.setText("");
    	txtb.setText("");
    	txtc.setText("");
    	txtd.setText("");
    	txte.setText("");
    	
    }
    public void Add(){    //增加按钮的操作
    	lstNames2.setVisible(true);
    	lbl1.setVisible(false);
    	lblMessage.setText("    ");
    	setTextToEditable();
    	clearTextFields();
    	txtCon.requestFocus();//此方法为组件请求焦点
    	btnAdd.setLabel("确定");
    	btnCancel.setEnabled(true);
    	btnDelete.setEnabled(false);
    	btnEdit.setEnabled(false);
    }	 	 	 
    
    public void Save(){//增加增加按钮点击后变为确定按钮的操作
    	lstNames2.setVisible(false);
    	lbl1.setVisible(false);
    	if(txtCon.getText().length()==0||txtb.getText().length()==0)
    	lblMessage.setText("不能为空");
    	else{
    		try{
    			String s=String.valueOf(++i);
    			String leixing=lstNames2.getSelectedItem().trim();
    			lstNames2.setVisible(false);
    	        lbl1.setVisible(false);
    	        if(leixing.equals("单选"))
    	        leixing="a";
    			if(leixing.equals("多选"))
    			leixing="b";
    			if(leixing.equals("判断"))
    			leixing="c";
    			cmdAnswer.executeUpdate("insert into answer(index1,con,a,b,c,d,e,f) values('"+s+"','"+txtCon.getText()+"','"+txta.getText()+"','"+txtb.getText()+"','"+txtc.getText()+"','"+txtd.getText().trim()+"','"+txte.getText().trim()+"','"+leixing+"')");
    			lstNames.addItem(s);
    			  			Cancel();
    			lblMessage.setText("添加成功");
    		}
    		catch(SQLException error){
    			lblMessage.setText("错误"+error.toString());i--;
    			
    		}
    	}
    }	 
    public void Delete(){   //清除按钮的操作
    	lstNames2.setVisible(true);
    	lbl1.setVisible(false);
    int intIndex=lstNames.getSelectedIndex();
    String sd=lstNames.getSelectedItem();
    System.out.print("sd"+sd);
   try{ cmdAnswer.executeUpdate("delete from answer where index1='"+sd+"'");
    			lstNames.remove(intIndex);
    		lblMessage.setText("删除成功");	}
    			catch(SQLException error){
    		//	System.out.print(error.toString());	
    				}
    }	 
    public void Cancel(){   //撤销按钮的操作
    	lstNames2.setVisible(false);
    	lbl1.setVisible(false);
    	btnDelete.setEnabled(true);
    	btnEdit.setEnabled(true);
    	btnCancel.setEnabled(false);
    	btnAdd.setLabel("增加");
    	clearTextFields();
    	lblMessage.setText("");
    }	 
   public void Edit(){  //保存按钮的执行操作
   	lstNames2.setVisible(false);
    	lbl1.setVisible(true);
   int intIndex=lstNames.getSelectedIndex();
   	if(intIndex==0)
    	lblMessage.setText("选择要修改的记录");
    	else{
    		String leixing=lstNames2.getSelectedItem().trim();
    		if(leixing.equals("单选"))
    	        leixing="a";
    			if(leixing.equals("多选"))
    			leixing="b";
    			if(leixing.equals("判断"))
    			leixing="c";
    		String strLastName=lstNames.getSelectedItem();
    		try{
    			cmdAnswer.executeUpdate("update answer set con='"+txtCon.getText().trim()+"',a='"+txta.getText()+"',b='"+txtb.getText().trim()+"',c='"+txtc.getText().trim()+"',d='"+txtd.getText().trim()+"',e='"+txte.getText().trim()+"',f='"+leixing+"' where index1='"+strLastName+"'");
    	    lblMessage.setText("修改成功");
    		}
    		catch(SQLException error){
    			lblMessage.setText("错误"+error.toString());
    			
    		}
    	}
   }
   public void stop(){
   	try{
   		if(conAnswer!=null)
   		conAnswer.close();
   	}
   	catch(SQLException error){
   		lblMessage.setText("连接无法结束");
   	}
   }
   
    }

⌨️ 快捷键说明

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