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

📄 coursemanager.java

📁 综合测评管理系统——完成班级的综合测评工作
💻 JAVA
字号:
import java.sql.*; 
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.util.*; 

public class CourseManager extends JFrame{
	private Connection dbConn;
	private PreparedStatement ps;
	private ResultSet rs;
	private ResultSetMetaData rsMetaData;
	
	//GUI变量定义
	private JTable table;
	private JTextArea inputQuery; 
	private JButton submitQuery;
	Container c=getContentPane();
	
	public CourseManager() 
	{
		//Form的标题 
		super("课程管理"); 
		
		final String dbURL="jdbc:sqlserver://localhost:1433; DatabaseName=sample"; 
		final String username="sa"; 
		final String password="2005"; 
		//加载驱动程序以连接数据库
		try{
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
			dbConn=DriverManager.getConnection(dbURL,username,password);
		}catch(ClassNotFoundException cnfex){
			System.err.println("装载 JDBC/ODBC 驱动程序失败。");
			cnfex.printStackTrace();
			System.exit(1); // terminate program
		}catch(SQLException sqlex){
			System.err.println( "无法连接数据库" );
			sqlex.printStackTrace();
			System.exit(1); // terminate program
		}
		
		//如果数据库连接成功,则建立GUI
		//Button事件
		
		JPanel topPanel = new JPanel();
		GridBagLayout lay=new GridBagLayout();
		GridBagConstraints constraints=new GridBagConstraints();
		topPanel.setLayout(lay);
		//Button ok_button=new Button("确定");
	  JButton modify_button=new JButton("修改");
	  JButton exit_button=new JButton("退出");
	  JButton add_button=new JButton("添加");
	  JButton delete_button=new JButton("删除");
	  
	  JLabel courseno_label=new JLabel("课程编号: ");
	  final JTextField courseno_textfield=new JTextField();
	  JLabel coursename_label=new JLabel("课程名: ");
	  final JComboBox coursename_combobox=new JComboBox();
	  JLabel teacher_label=new JLabel("任课老师: ");
	  final JTextField teacher_textfield=new JTextField();
	  String[] temp={"2006-2007","2007-2008","2008-2009","2009-2010"};
	  JLabel acadyear_label=new JLabel("学年: ");
	  final JComboBox acadyear_combobox=new JComboBox(temp);
	   
	  JLabel userinfo_label=new JLabel("课程信息:");
	  
	  //初始化JComboBox
	  coursename_combobox.setEditable(true); 
	  try{
			//执行SQL语句 
			String query ="select * from course";
			ps=dbConn.prepareStatement(query);
			rs=ps.executeQuery();
			while(rs.next()){
				coursename_combobox.addItem(rs.getString("cname"));
			}
		}catch(SQLException sqlex){
			sqlex.printStackTrace();
		}
			
	  constraints.anchor=GridBagConstraints.CENTER;
	     
	  constraints.gridx=0;
	  constraints.gridy=0;
	  constraints.weightx=1;
	  constraints.weighty=1;
	  constraints.gridwidth=1;
	  constraints.gridheight=1;
	  constraints.fill=GridBagConstraints.NONE;
	  constraints.anchor=GridBagConstraints.EAST;
	  topPanel.add(courseno_label,constraints);
	      
	  constraints.gridx=1;
	  constraints.gridy=0;
	  constraints.weightx=1;
	  constraints.weighty=2;
	  constraints.gridwidth=1;
	  constraints.gridheight=1;
	  constraints.fill=GridBagConstraints.BOTH;
	  constraints.anchor=GridBagConstraints.CENTER;
	  topPanel.add(courseno_textfield,constraints);
	     
	  constraints.gridx=2;
	  constraints.gridy=0;
	  constraints.weightx=1;
	  constraints.weighty=1;
	  constraints.gridwidth=1;
	  constraints.gridheight=1;
	  constraints.fill=GridBagConstraints.NONE;
	  constraints.anchor=GridBagConstraints.CENTER;
	  topPanel.add(modify_button,constraints);
	           
	  constraints.gridx=0;
	  constraints.gridy=1;
	  constraints.weightx=1;
	  constraints.weighty=1;
	  constraints.gridwidth=1;
	  constraints.gridheight=1;
	  constraints.fill=GridBagConstraints.NONE;
	  constraints.anchor=GridBagConstraints.EAST;
	  topPanel.add(coursename_label,constraints);
	     
	  constraints.gridx=1;
	  constraints.gridy=1;
	  constraints.weightx=1;
	  constraints.weighty=2;
	  constraints.gridwidth=1;
	  constraints.gridheight=1;
	  constraints.fill=GridBagConstraints.BOTH;
	  constraints.anchor=GridBagConstraints.CENTER;
	  topPanel.add(coursename_combobox,constraints);
	  
	  constraints.gridx=2;
	  constraints.gridy=1;
	  constraints.weightx=1;
	  constraints.weighty=2;
	  constraints.gridwidth=1;
	  constraints.gridheight=1;
	  constraints.fill=GridBagConstraints.NONE;
	  constraints.anchor=GridBagConstraints.CENTER;
	  topPanel.add(exit_button,constraints);
	  
	  constraints.gridx=0;
	  constraints.gridy=2;
	  constraints.weightx=1;
	  constraints.weighty=1;
	  constraints.gridwidth=1;
	  constraints.gridheight=1;
	  constraints.fill=GridBagConstraints.NONE;
	  constraints.anchor=GridBagConstraints.EAST;
	  topPanel.add(teacher_label,constraints);
	     
	  constraints.gridx=1;
	  constraints.gridy=2;
	  constraints.weightx=1;
	  constraints.weighty=2;
	  constraints.gridwidth=1;
	  constraints.gridheight=1;
	  constraints.fill=GridBagConstraints.BOTH;
	  constraints.anchor=GridBagConstraints.CENTER;
	  topPanel.add(teacher_textfield,constraints);
	  
	  constraints.gridx=0;
	  constraints.gridy=3;
	  constraints.weightx=1;
	  constraints.weighty=1;
	  constraints.gridwidth=1;
	  constraints.gridheight=1;
	  constraints.fill=GridBagConstraints.NONE;
	  constraints.anchor=GridBagConstraints.EAST;
	  topPanel.add(acadyear_label,constraints);
	     
	  constraints.gridx=1;
	  constraints.gridy=3;
	  constraints.weightx=1;
	  constraints.weighty=2;
	  constraints.gridwidth=1;
	  constraints.gridheight=1;
	  constraints.fill=GridBagConstraints.BOTH;
	  constraints.anchor=GridBagConstraints.CENTER;
	  topPanel.add(acadyear_combobox,constraints);
	      
	  constraints.gridx=0;
	  constraints.gridy=4;
	  constraints.weightx=1;
	  constraints.weighty=1;
	  constraints.gridwidth=2;
	  constraints.gridheight=1;
	  constraints.fill=GridBagConstraints.NONE;
	  constraints.anchor=GridBagConstraints.CENTER;
	  topPanel.add(add_button,constraints);
	      
	  constraints.gridx=1;
	  constraints.gridy=4;
	  constraints.weightx=1;
	  constraints.weighty=1;
	  constraints.gridwidth=2;
	  constraints.gridheight=1;
	  constraints.fill=GridBagConstraints.NONE;
	  constraints.anchor=GridBagConstraints.CENTER;
	  topPanel.add(delete_button,constraints);
	  
	  //按钮的单击事件处理
	  
	  /*ok_button.addActionListener(new ActionListener(){
	  	public void actionPerformed(ActionEvent e){
	  		
	  	}
	  });*/
	  
	  modify_button.addActionListener(new ActionListener(){
	  	public void actionPerformed(ActionEvent e){
	  		String[] temp={""};
	  		temp[0]=courseno_textfield.getText();
	  		if(temp[0].equals("")){
	  			JOptionPane.showMessageDialog(new JFrame(),"课程编号不能为空","警告",JOptionPane.WARNING_MESSAGE);
	  		}else{
	  		  try{
	  		    dbConn=DriverManager.getConnection(dbURL,username,password);
	  				String selectStr="select * from course where cno=?";
	  				ps=dbConn.prepareStatement(selectStr);
	  				ps.setString(1,temp[0]);
	  				rs=ps.executeQuery();
	  				if(rs.next()){
	  					String updateStr="update course set cname=?,teacher=?,academic_year=? WHERE cno=?";
	  			    ps=dbConn.prepareStatement(updateStr);
	  			    ps.setString(1,(String)coursename_combobox.getSelectedItem());
	  			    ps.setString(2,teacher_textfield.getText());
	  			    ps.setString(3,(String)acadyear_combobox.getSelectedItem());
	  			    ps.setString(4,rs.getString("cno"));
	  			    ps.executeUpdate();
	  			    JOptionPane.showMessageDialog(new JFrame(),"修改成功","成功",JOptionPane.WARNING_MESSAGE);
	  			    getTable();
	  			  }else{
	  			  	JOptionPane.showMessageDialog(new JFrame(),"编号不存在","警告",JOptionPane.WARNING_MESSAGE);
	  			  }
	  			}catch(SQLException exc){
	  			  exc.printStackTrace();
	  			}finally{
	  			  if(ps!=null)try{ps.close();}catch(SQLException ignore){}
	  			  if(dbConn!=null)try{dbConn.close();}catch(SQLException ignore){}
	  			}
	  	  }
	  	  try{
	  	  	//执行SQL语句 
			    String query ="select * from course";
			    ps=dbConn.prepareStatement(query);
			    rs=ps.executeQuery();
			    while(rs.next()){
				    coursename_combobox.addItem(rs.getString("cname"));
			    }
		    }catch(SQLException sqlex){
			    sqlex.printStackTrace();
		    }
		    //更新数据库
		    new DatabaseUpdate();
	  	}
	  });
	  
	  exit_button.addActionListener(new ActionListener(){
	  	public void actionPerformed(ActionEvent e){
	  		dispose();	  	
	  	}
	  });
	  
	  add_button.addActionListener(new ActionListener(){
	  	public void actionPerformed(ActionEvent e){
	  		String[] temp={""};
	  		temp[0]=courseno_textfield.getText();
	  		if(temp[0].equals("")){
	  			JOptionPane.showMessageDialog(new JFrame(),"课程编号不能为空","警告",JOptionPane.WARNING_MESSAGE);
	  		}else{
	  		  try{
	  		    dbConn=DriverManager.getConnection(dbURL,username,password);
	  				String selectStr="select * from course where cno=?";
	  				ps=dbConn.prepareStatement(selectStr);
	  				ps.setString(1,temp[0]);
	  				rs=ps.executeQuery();
	  				if(!rs.next()){
	  					String updateStr="insert into course (cno,cname,teacher,academic_year) values(?,?,?,?)";
	  			    ps=dbConn.prepareStatement(updateStr);
	  			    ps.setString(1,courseno_textfield.getText());
	  			    ps.setString(2,(String)coursename_combobox.getSelectedItem());
	  			    ps.setString(3,teacher_textfield.getText());
	  			    ps.setString(4,(String)acadyear_combobox.getSelectedItem());
	  			    ps.executeUpdate();
	  			    JOptionPane.showMessageDialog(new JFrame(),"添加成功","成功",JOptionPane.WARNING_MESSAGE);
	  			    getTable();
	  			  }else{
	  			  	JOptionPane.showMessageDialog(new JFrame(),"编号已存在","警告",JOptionPane.WARNING_MESSAGE);
	  			  }
	  			}catch(SQLException exc){
	  			  exc.printStackTrace();
	  			}finally{
	  			  if(ps!=null)try{ps.close();}catch(SQLException ignore){}
	  			  if(dbConn!=null)try{dbConn.close();}catch(SQLException ignore){}
	  			}
	  	  }
	  	  try{
	  	  	//执行SQL语句 
			    String query ="select * from course";
			    ps=dbConn.prepareStatement(query);
			    rs=ps.executeQuery();
			    while(rs.next()){
				    coursename_combobox.addItem(rs.getString("cname"));
			    }
		    }catch(SQLException sqlex){
			    sqlex.printStackTrace();
		    }
		    //更新数据库
		    new DatabaseUpdate();
	  	}
	  });
	  
	  delete_button.addActionListener(new ActionListener(){
	  	public void actionPerformed(ActionEvent e){
	  		String[] temp={""};
	  		temp[0]=courseno_textfield.getText();
	  		if(temp[0].equals("")){
	  			JOptionPane.showMessageDialog(new JFrame(),"课程编号不能为空","警告",JOptionPane.WARNING_MESSAGE);
	  		}else{
	  		  try{
	  		    dbConn=DriverManager.getConnection(dbURL,username,password);
	  				String selectStr="select * from course where cno=?";
	  				ps=dbConn.prepareStatement(selectStr);
	  				ps.setString(1,temp[0]);
	  				rs=ps.executeQuery();
	  				if(rs.next()){
	  					String updateStr="delete course where cno=?";
	  			    ps=dbConn.prepareStatement(updateStr);
	  			    ps.setString(1,courseno_textfield.getText());
	  			    ps.executeUpdate();
	  			    JOptionPane.showMessageDialog(new JFrame(),"删除成功","成功",JOptionPane.WARNING_MESSAGE);
	  			    getTable();
	  			  }else{
	  			  	JOptionPane.showMessageDialog(new JFrame(),"编号不存在","警告",JOptionPane.WARNING_MESSAGE);
	  			  }
	  			}catch(SQLException exc){
	  			  exc.printStackTrace();
	  			}finally{
	  			  if(ps!=null)try{ps.close();}catch(SQLException ignore){}
	  			  if(dbConn!=null)try{dbConn.close();}catch(SQLException ignore){}
	  			}
	  	  }
	  	  try{
	  	  	//执行SQL语句 
			    String query ="select * from course";
			    ps=dbConn.prepareStatement(query);
			    rs=ps.executeQuery();
			    while(rs.next()){
				    coursename_combobox.addItem(rs.getString("cname"));
			    }
		    }catch(SQLException sqlex){
			    sqlex.printStackTrace();
		    }
		    //更新数据库
		    new DatabaseUpdate();
	  	}
	  });
	  
	  table = new JTable(); 
	  Container c = getContentPane(); 
	  c.setLayout( new BorderLayout() ); 
	  //将"topPanel"编辑框布置到 "NORTH" 
	  c.add( topPanel, BorderLayout.NORTH ); 
	  //将"table"编辑框布置到 "CENTER" 
	  c.add( table, BorderLayout.CENTER ); 
	  getTable(); 
	  setSize( 500, 300 );
	  //显示Frame 
	  show();
	  
	  Toolkit kit=Toolkit.getDefaultToolkit();
	  Dimension screenSize=kit.getScreenSize();
	  int width=screenSize.width;
	  int height=screenSize.height;
	  setLocation((width-getWidth())/2,(height-getHeight())/2);
	} 
	
	private void getTable()
	{
		try{
			//执行SQL语句 
			String query ="select cno as '课程编号',cname as '课程名',teacher as '任课老师',academic_year as '开课学年' from course"; 
			ps=dbConn.prepareStatement(query); 
			rs=ps.executeQuery(); 
			//在表格中显示查询结果
			displayResultSet(rs);
		}catch(SQLException sqlex){
			sqlex.printStackTrace();
		}
	}
	
	private void displayResultSet(ResultSet rs)throws SQLException{
		//定位到达第一条记录
		boolean moreRecords = rs.next();
		//如果没有记录,则提示一条消息
		if (! moreRecords){
			JOptionPane.showMessageDialog( this,"结果集中无记录" );
			setTitle( "无记录显示" );
			return;
		}
		
		Vector columnHeads = new Vector();
		Vector rows = new Vector();
		try{
			//获取字段的名称
			ResultSetMetaData rsmd = rs.getMetaData();
			for ( int i = 1; i <= rsmd.getColumnCount(); ++i )
			  columnHeads.addElement( rsmd.getColumnName( i ) );
			//获取记录集
			do{
				rows.addElement( getNextRow( rs, rsmd ) );
			}while(rs.next());
			//在表格中显示查询结果
			table = new JTable( rows, columnHeads );
			JScrollPane scroller = new JScrollPane( table );
			
			c.remove(1);
			c.add( scroller, BorderLayout.CENTER );
			//刷新Table
			c.validate();
		}catch(SQLException sqlex){
			sqlex.printStackTrace();
		}
	} 
	
	private Vector getNextRow(ResultSet rs,ResultSetMetaData rsmd)throws SQLException{
		Vector currentRow = new Vector();
		for ( int i = 1; i <= rsmd.getColumnCount(); ++i )
		  currentRow.addElement( rs.getString( i ) );
		  //返回一条记录
		  return currentRow;
	}
}

⌨️ 快捷键说明

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