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

📄 inquest.java

📁 java选课系统管理端
💻 JAVA
字号:
//package myprojects.main;
import java.sql.*; 
import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
import java.util.*; 

public class Inquest extends JDialog 
{
	private Connection queryconnection; 
   	private Statement querystatement; 
   	private ResultSet queryresultSet; 
   	private ResultSetMetaData rsMetaData;
  
    //GUI变量定义
	private JFrame parent; 
	private JPanel labelPanel, tablePanel;//定义两块面板对象
	//labelPanel用来放标签,fieldsPanel用来放文本区
	private String labels;
	private JTable commoditytable; 
	private JButton submitQuery;     
	private JButton cancelQuery;     
            JTextField 文字输入栏;
	String 窗口标题,query;
	
	public Inquest(int select) 
    {  submitQuery = new JButton( "查  询" );
    /*----------------------------select=1为查询已经选上的课程---------------------------*/
        if(select==1)
        {
        	labels=new String("请输入课程号");
        	窗口标题= new String("已选课程查询窗口");
        	query =new String("SELECT 成绩表.课程号,课程名,学时,学分,学期,教师,分数 FROM 课程信息表,成绩表 WHERE 课程信息表.课程号=成绩表.课程号");
        	query = query+" AND 学号='"+LoginFrame.userNameTextField.getText()+"'";
        }
   /*----------------------------select=2为选课申请---------------------------*/
        else if(select==2)
        {
        	labels=new String("请输入课程号");
        	窗口标题= new String("选课申请窗口");
        	submitQuery.setText("申请");
        	query =new String("SELECT * FROM 课程信息表");
       	}
  /*----------------------------select=3成绩查询---------------------------*/
        else if(select==3)
        {
        	labels=new String("请输入课程号");
        	窗口标题= new String("成绩查询窗口");
        	query =new String("SELECT 成绩表.课程号,课程名,学分,学期,教师,分数  FROM 成绩表,课程信息表 WHERE 成绩表.课程号=课程信息表.课程号");
        	query=query+" AND 学号='"+LoginFrame.userNameTextField.getText()+"'";
        }
  /*----------------------------select=4选课名单(教师查询)---------------------------*/
        else if(select==4)
        {
        	labels=new String("请输入课程号");
        	窗口标题= new String("选课名单查询窗口");
        	query =new String("SELECT 成绩表.学号,姓名,成绩表.课程号,课程名  "
        	     +" FROM 学生基本信息表,成绩表,课程信息表,教师表 "
        	     +" WHERE 成绩表.学号=学生基本信息表.学号 "
        	     +" AND  成绩表.课程号=课程信息表.课程号 ");
        	query=query+" AND 登陆帐号='"+LoginFrame.userNameTextField.getText()
        	     +"' AND 课程信息表.教师=教师表.教师 ";
        }
  /*-----------------------------------------------------------------------*/
        pack();
        submitQuery.setPreferredSize(new Dimension(120, 25));
        submitQuery.addActionListener(new ActionLis(select));
        cancelQuery = new JButton( "返  回" );
        cancelQuery.setPreferredSize(new Dimension(120, 25));
    	cancelQuery.addActionListener( 
         new ActionListener() 
         { 
            public void actionPerformed( ActionEvent e ) 
            { 
               	setVisible(false);
               	dispose();
            } 
         }   
        ); 
        
        Box box = Box.createHorizontalBox();
        文字输入栏 = new JTextField(8);
        box.add( new JLabel(labels));
        box.add( 文字输入栏 );
        box.add( submitQuery );
        box.add( Box.createHorizontalStrut(2));
        box.add( cancelQuery );
        box.add(Box.createGlue());
        labelPanel = new JPanel();
        labelPanel.add(box);
      
		commoditytable = new JTable();
		
        JScrollPane commodityscroller = new JScrollPane( commoditytable ); 
        commodityscroller.setPreferredSize(new Dimension(100, 50));
		
		tablePanel = new JPanel();
		tablePanel.setLayout( new BorderLayout() );
		tablePanel.setPreferredSize(new Dimension(100, 20));
		tablePanel.setBorder(BorderFactory.createEtchedBorder());
 		tablePanel.add( commodityscroller ,BorderLayout.CENTER);
 		
 		Container c = getContentPane(); 
      	setTitle(窗口标题);
      	c.setLayout( new BorderLayout() );//布局管理器
      	//将"topPanel"编辑框布置到 "NORTH"
      	//c.add( new JScrollPane( labelPanel ),BorderLayout.NORTH );
      	c.add( labelPanel ,BorderLayout.NORTH);
      	c.add( new JScrollPane( tablePanel ),BorderLayout.CENTER );
      	getTable(query); 
      	setSize( 420,300 );
      	setResizable(false);
      	setLocation(280,180);
     }
 /*------------------------自定义ActionLis类------------------------*/
   class ActionLis implements ActionListener
   {
        int select;
        public ActionLis(int select)
        {
        	this.select = select;
        }
        public void actionPerformed(ActionEvent e)
        {
        	switch(select)
        	{
               /*--------------------select=1为查询已经选上的课程----------------------*/
        		case 1:query = "SELECT 成绩表.课程号,课程名,学时,学分,学期,教师,分数  FROM 成绩表,课程信息表"
        		           +" WHERE 成绩表.课程号=课程信息表.课程号 AND 学号='"
        		           +LoginFrame.userNameTextField.getText()
        		           +"' AND 成绩表.课程号="+文字输入栏.getText();
        		       break;
               /*--------------------select=2为选课申请---------------------------*/
        		case 2:String commodityquery = "SELECT * FROM 课程信息表 WHERE 课程号="+
         	 				  文字输入栏.getText()+"";
        		       appendInfo(commodityquery);
        		       break;
               /*-------------------select=3为查询成绩---------------------------*/
        		case 3:query = "SELECT 成绩表.课程号,课程名,学分,学期,教师,分数  FROM 成绩表,课程信息表 WHERE 成绩表.课程号=课程信息表.课程号 AND 学号='"
        		           +LoginFrame.userNameTextField.getText()
        		           +"' AND 成绩表.课程号="+文字输入栏.getText();
        		       break;
               /*-------------------select=4为选课名单查询---------------------------*/
        		case 4:query = "SELECT 课程名,成绩表.学号,姓名  FROM 学生基本信息表,成绩表,课程信息表,教师表 WHERE 成绩表.学号=学生基本信息表.学号 AND 成绩表.课程号=课程信息表.课程号 AND 课程信息表.教师=教师表.教师 AND 登陆帐号='"
        		           +LoginFrame.userNameTextField.getText()
        		           +"' AND 成绩表.课程号="+文字输入栏.getText();
        		       break;
        	}
        	getTable(query);
        } 
   }
 /*----------------------------getTable-------------------------------*/    
    private void getTable(String commodityquery) 
    { 
        String url = "jdbc:odbc:java"; 
    	String username = "sa"; 
    	String password = ""; 
    	//加载驱动程序以连接数据库
      	try 
      	{ 
        	Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" ); 
        	queryconnection = DriverManager.getConnection( url, username, password ); 
      	} 
      	//捕获加载驱动程序异常
      	catch ( ClassNotFoundException cnfex ) 
      	{ 
        	System.err.println("装载 JDBC/ODBC 驱动程序失败。" ); 
        	cnfex.printStackTrace(); 
        	JOptionPane.showMessageDialog ( this ,cnfex ,
          "学生选课管理系统",JOptionPane.WARNING_MESSAGE ); 
         	System.exit( 1 );  // terminate program 
      	} 
      	//捕获连接数据库异常
      	catch ( SQLException sqlex ) 
      	{ 
         	System.err.println( "无法连接数据库" ); 
         	sqlex.printStackTrace(); 
         	JOptionPane.showMessageDialog ( this ,sqlex ,
          "学生选课管理系统",JOptionPane.WARNING_MESSAGE ); 
         	System.exit( 1 );  // terminate program 
      	}
      try 
      { 
      	 //执行SQL语句
         querystatement = queryconnection.createStatement(); 
         queryresultSet = querystatement.executeQuery( commodityquery );       
         //在表格中显示查询结果
         displayResultSet( queryresultSet);
      } 
      catch ( SQLException sqlex ) { 
         sqlex.printStackTrace(); 
         JOptionPane.showMessageDialog ( this ,sqlex ,
          "学生选课管理系统",JOptionPane.WARNING_MESSAGE ); 
      } 
   }  	
  /*---------------------------displayResultSet--------------------------------*/   
   private void displayResultSet( ResultSet commodityrs ) 
      throws SQLException 
   { 
      //定位到达第一条记录
     
      boolean commoditymoreRecords = commodityrs.next();
      //如果没有记录,则提示一条消息
      
      if ( ! commoditymoreRecords ) 
      { 
         JOptionPane.showMessageDialog( this,"无此记录" ); 
         //setTitle( "无记录显示" ); 
      	 return ;
      } 
     
      Vector commoditycolumnHeads = new Vector(); 
      Vector commodityrows = new Vector(); 
      try
      {
      	 
         //获取字段的名称
         ResultSetMetaData rsmd = commodityrs.getMetaData(); 
         for ( int i = 1; i <= rsmd.getColumnCount(); ++i )
         { 
            commoditycolumnHeads.addElement( rsmd.getColumnName( i ) ); 
         }
          //获取记录集
         do 
         { 
            commodityrows.addElement( getNextRow( commodityrs, rsmd ) ); 
         } while ( commodityrs.next() ); 
         
         ResultSetMetaData commodityrsmd = commodityrs.getMetaData(); 
        
         
         //在表格中显示查询结果
         commoditytable = new JTable( commodityrows, commoditycolumnHeads ); 
         
         JScrollPane scroller = new JScrollPane( commoditytable ); 
         scroller.setSize(800, 20);
          
         Container c = getContentPane(); 
         c.remove(1); 
     	 tablePanel = new JPanel();
     	 tablePanel.setLayout( new BorderLayout() );
         tablePanel.add( scroller, BorderLayout.CENTER ); 
       
         c.add(tablePanel,BorderLayout.CENTER);
         //刷新Table
         c.validate(); 
      } 
      catch ( SQLException sqlex )
	  { 
         JOptionPane.showMessageDialog ( this ,sqlex ,
          "学生选课管理系统",JOptionPane.WARNING_MESSAGE ); 
      } 
   } 
/*-----------------------------getNextRow---------------------------------*/
   private Vector getNextRow( ResultSet rs, ResultSetMetaData rsmd )throws SQLException
   {
      Vector currentRow = new Vector();
      for ( int i = 1; i <= rsmd.getColumnCount(); ++i )
      switch( rsmd.getColumnType( i ) ) //判断数据类型
      {
         case Types.CHAR:
         case Types.VARCHAR:
         case Types.LONGVARCHAR: currentRow.addElement( rs.getString( i ) );
                                 break;
         case Types.DECIMAL:     currentRow.addElement( rs.getBigDecimal( i ) );
                                 break;  
         case Types.DATE:        currentRow.addElement( rs.getDate( i ) );
                                 break;                                                 
         case Types.SMALLINT:    
         case Types.INTEGER:     currentRow.addElement(new Integer( rs.getInt( i ) ) );
                                 break;
         default:                System.out.println( "Type was: " +rsmd.getColumnTypeName( i ) );
      }//end_Switch
      return currentRow;//返回当前行
   }
/*--------------------------appendInfo添加信息----------------------------*/
   private void appendInfo(String commodityquery) 
    { 
      try 
      { 
         String InsertInput = "INSERT INTO 成绩表 VALUES('"+LoginFrame.userNameTextField.getText()+"','"+文字输入栏.getText()+"',"+null+")";
      	 querystatement = queryconnection.createStatement(); 
         queryresultSet = querystatement.executeQuery( commodityquery );   
         boolean moreRecords = queryresultSet.next();     
         if ( !moreRecords ) 
         { 
            JOptionPane.showMessageDialog( this,"对不起,此课程没有开课,请重新输入" ); 
            //setTitle( "无记录显示" );
            //queryconnection.close(); 
            return; 
         }  
         int insert = querystatement.executeUpdate( InsertInput );//executeUpdate返回一个整型值
         if (insert == 1)
         {
            JOptionPane.showMessageDialog( this,"选课申请成功!" );
         }     
      } 
      catch ( SQLException sqlex ) 
      { 
         //sqlex.printStackTrace(); 
         JOptionPane.showMessageDialog ( this ,sqlex ,
          "学生选课管理系统",JOptionPane.WARNING_MESSAGE ); 
         文字输入栏.setText(""); 
      } 
   }  	
}

⌨️ 快捷键说明

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