java图形界面swing 连接sql server数据库 实现列车车站信息管理系统(适用于课设、大作业)

之前做了一个外卖点餐系统之后点此查看详情,这段时间在这个系统的基础上改了改帮几位同学实现了其他的几个系统,本文所述的列车车站信息管理系统就是其中之一。
一、数据库表及字段
1、管理员表
在这里插入图片描述
2、公交车表
在这里插入图片描述

3、顾客表
在这里插入图片描述

4、购买表
在这里插入图片描述

5、列车运行表
在这里插入图片描述

6、站点表
在这里插入图片描述

7、列车表
在这里插入图片描述
二、系统运行界面图(部分)
1、登陆界面
在这里插入图片描述

2、注册界面
在这里插入图片描述

3、用户的首界面
在这里插入图片描述

4、用户的购票界面
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5、管理员首界面
在这里插入图片描述

6、列车运行管理
在这里插入图片描述

管理中心里面的功能基本都差不多,所以就列举上面几个,下面展示主要代码。
三、部分核心代码
1、登录模块的代码实现

private static final long serialVersionUID = 1L;
	Common common=new Common();
	static String Cusername;
	static String Cpassword;
    PreparedStatement ps=null;
	private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPasswordField jPasswordField1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextField jTextField;
    private javax.swing.JToggleButton jToggleButton1; 
    
    public UserLogin() {
		initComponents();
    }
    
    private void initComponents() {

        jPanel2 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTextField = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jToggleButton1 = new javax.swing.JToggleButton();
        jButton3 = new javax.swing.JButton();
        jPasswordField1 = new javax.swing.JPasswordField();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jPanel2.setBackground(new java.awt.Color(18 ,161, 130));
        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "车站信息管理系统", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("微软雅黑", 1, 24), new java.awt.Color(255, 255, 255))); // NOI18N
        jPanel2.setAutoscrolls(true);

        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jLabel1.setText("账号:");

        jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
        jLabel2.setText("密码:");

        jTextField.setColumns(20);
        jScrollPane1.setViewportView(jTextField);

        jButton1.setText("登录");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                try {
					jButton1ActionPerformed(evt);
				} catch (SQLException e) {
					e.printStackTrace();
				}
            }
        });
        jButton2.setText("注册");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jToggleButton1.setText("退出");
        jToggleButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jToggleButton1ActionPerformed(evt);
            }
        });

        jButton3.setText("管理员登录");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jButton3)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jToggleButton1))
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGap(162, 162, 162)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 98, Short.MAX_VALUE))
                .addGap(18, 18, 18)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGap(19, 19, 19)
                        .addComponent(jButton1)
                        .addGap(85, 85, 85)
                        .addComponent(jButton2))
                    .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                        .addComponent(jPasswordField1, javax.swing.GroupLayout.Alignment.LEADING)
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING)))
                .addContainerGap(171, Short.MAX_VALUE))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGap(69, 69, 69)
                        .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGap(51, 51, 51)
                        .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGap(36, 36, 36)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jPasswordField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(41, 41, 41)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton1)
                    .addComponent(jButton2))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 118, Short.MAX_VALUE)
                .addComponent(jToggleButton1))
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jButton3)
                .addContainerGap())
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(113, 113, 113)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(290, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(44, 44, 44)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(441, Short.MAX_VALUE))
        );

        pack();
    }                        

    private void jToggleButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                               
        System.exit(0);
    }                                              
    
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) throws SQLException {
    	Cusername=jTextField.getText();
    	Cpassword=jPasswordField1.getText(); 
        String sql="select customerIdCard,customerPassword from customer where customerIdCard=? and customerPassword=? ";
        common.connectDB();
        ps=common.conn.prepareStatement(sql);
        ps.setString(1, Cusername);
        ps.setString(2, Cpassword);
        ResultSet rs=ps.executeQuery();
        if(rs.next()) {
        	UserLogin.this.setVisible(false);
        	Menu menu =new Menu();
        	menu.setVisible(true);
        }
        else {
        	JOptionPane.showMessageDialog(null,"密码或用户名错误!!!!");
        } 
        common.connectClose();
    }
    
    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        UserLogin.this.setVisible(false);
        Register Register =new Register();
        Register.setVisible(true);
    }
    
    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        UserLogin.this.setVisible(false);
        AdminLogin AdminLogin =new AdminLogin();
        AdminLogin.setVisible(true);
    } 
    
    public static void main(String args[]) {
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(UserLogin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(UserLogin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(UserLogin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(UserLogin.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new UserLogin().setVisible(true);
            }
        });
    }

2、用户购票代码实现

Common common=new Common();
    float sum=0;
    float shouldPrice=0;
    String newDate;
    public String num1;
    public int num;
    public int row;
	PreparedStatement pstm=null;
	Statement stmt = null;
	private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButton4;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextField2;
    private javax.swing.JToggleButton jToggleButton1;
    private javax.swing.JToggleButton jToggleButton2; 

    public Purchase() {
        initComponents();
    }
                         
    private void initComponents() {

        jPanel2 = new javax.swing.JPanel();
        jToggleButton1 = new javax.swing.JToggleButton();
        jToggleButton2 = new javax.swing.JToggleButton();
        jTextField1 = new javax.swing.JTextField();
        jButton1 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new javax.swing.JTable();
        jButton2 = new javax.swing.JButton();
        jButton4 = new javax.swing.JButton();
        jTextField2 = new javax.swing.JTextField();
        jLabel1 = new javax.swing.JLabel();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jPanel2.setBackground(new java.awt.Color(18 ,161, 130));
        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "车站信息管理系统", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("微软雅黑", 1, 24), new java.awt.Color(255, 255, 255))); // NOI18N
        jPanel2.setAutoscrolls(true);

        jToggleButton1.setText("退出");
        jToggleButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jToggleButton1ActionPerformed(evt);
            }
        });

        jToggleButton2.setText("返回");
        jToggleButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jToggleButton2ActionPerformed(evt);
            }
        });

        jButton1.setText("搜索");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jButton3.setText("查询所有");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        jScrollPane1.setViewportView(jTable1);

        jButton2.setText("选择购票");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jButton4.setText("确认支付");
        jButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton4ActionPerformed(evt);
            }
        });

        jLabel1.setText("总金额");

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane1)
                .addContainerGap())
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGap(28, 28, 28)
                        .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 236, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(jButton1))
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGap(49, 49, 49)
                        .addComponent(jButton2)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 308, Short.MAX_VALUE)
                        .addComponent(jLabel1)
                        .addGap(18, 18, 18)
                        .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 189, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addGap(18, 18, 18)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jButton4)
                    .addComponent(jButton3)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addComponent(jToggleButton2)
                        .addGap(18, 18, 18)
                        .addComponent(jToggleButton1))))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton1)
                    .addComponent(jButton3))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 318, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton2)
                    .addComponent(jButton4)
                    .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 33, Short.MAX_VALUE)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jToggleButton1)
                    .addComponent(jToggleButton2))
                .addContainerGap())
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(61, 61, 61)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(245, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(49, Short.MAX_VALUE)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(101, 101, 101))
        );

        pack();
    }                        

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
		String text=jTextField1.getText();
		try {
			String sql = "select trainId,run.stationId,(select stationName from station where station.stationId=run.stationId)as arriveStation,arriveTime,leaveTime,ticketNum,ticketPrice from run,station where station.stationId=run.stationId and( trainId='"+text+"' or stationName='"+text+"')";
            common.connectDB();
			pstm = common.conn.prepareStatement(sql);
			ResultSet rs = pstm.executeQuery();
			int count = 0;
			while (rs.next()) {
				count++;
			}
			rs = pstm.executeQuery();
            Object[][] info = new Object[count][7];
            count = 0;
            while (rs.next()) {
                info[count][0] = rs.getString("trainId");
                info[count][1] = Integer.valueOf(rs.getInt("stationId"));
                info[count][2] = rs.getString("arriveStation");
                info[count][3] = rs.getString("arriveTime");
                info[count][4] = rs.getString("leaveTime");
                info[count][5] = Integer.valueOf(rs.getInt("ticketNum"));
                info[count][6] = Float.valueOf(rs.getFloat("ticketPrice"));
                count++;
            }
            String[] title = { "车次","站台编号", "到达站","到达时间","离开时间","余票数量","票价"};
			this.jTable1 = new JTable(info, title);
			this.jScrollPane1.getViewport().add(jTable1);
			common.connectClose();
		}catch (SQLException sqle) {
			JOptionPane.showMessageDialog(null, "数据操作错误", "错误", JOptionPane.ERROR_MESSAGE);
		}
    }  
    
    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        row=jTable1.getSelectedRow();
        shouldPrice=(Float) jTable1.getValueAt(row, 6);
        num1=JOptionPane.showInputDialog("您选择的车次为:"+jTable1.getValueAt(row, 0)+"到达站为:"+jTable1.getValueAt(row, 2)+"到达时间为:"+jTable1.getValueAt(row,3)+"请输入购票数量:");
        num=Integer.parseInt(num1);
        sum=Float.parseFloat(num1)*shouldPrice;
        jTextField2.setText(String.valueOf(sum));
    }
    
    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {                                         
		try {
			common.connectDB();
            String sql = "select trainId,stationId,(select stationName from station where station.stationId=run.stationId)as arriveStation,arriveTime,leaveTime,ticketNum,ticketPrice from run";
			pstm = common.conn.prepareStatement(sql);
			ResultSet rs = pstm.executeQuery();
			int count = 0;
			while (rs.next()) {
				count++;
			}
			rs = pstm.executeQuery();
            Object[][] info = new Object[count][7];
            count = 0;
            while (rs.next()) {
                info[count][0] = rs.getString("trainId");
                info[count][1] = Integer.valueOf(rs.getInt("stationId"));
                info[count][2] = rs.getString("arriveStation");
                info[count][3] = rs.getString("arriveTime");
                info[count][4] = rs.getString("leaveTime");
                info[count][5] = Integer.valueOf(rs.getInt("ticketNum"));
                info[count][6] = Float.valueOf(rs.getFloat("ticketPrice"));
                count++;
            }
            String[] title = { "车次","站台编号", "到达站","到达时间","离开时间","余票数量","票价"};
			this.jTable1 = new JTable(info, title);
			this.jScrollPane1.getViewport().add(jTable1);
			common.connectClose();
		}catch (SQLException sqle) {
			JOptionPane.showMessageDialog(null, "数据操作错误", "错误", JOptionPane.ERROR_MESSAGE);
		}
    }
    
    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
    	if(sum==0) {
    		JOptionPane.showMessageDialog(null, "请选择缴费项后再进行支付!!!");
    		return;
    	}
		try {
            common.connectDB();
            stmt = common.conn.createStatement();
            SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
            newDate=simpleDateFormat.format(new Date());
            System.out.println(newDate);
            String sql3="insert into purchase(customerId,trainId,purchaseDate,beginStation,endStation,purchaseNum,purchasePrice)" + "values((select customerId from customer where customerIdCard='"+UserLogin.Cusername+"'),'"+jTable1.getValueAt(row,0)+"','"+newDate+"',2,'"+jTable1.getValueAt(row,1)+"','"+num1+"','"+sum+"')";
            String sql2="update run set ticketNum=ticketNum-'"+num+"' where trainId='"+jTable1.getValueAt(row,0)+"' and stationId='"+jTable1.getValueAt(row,1)+"' and arriveTime='"+jTable1.getValueAt(row,3)+"'";
            stmt.executeUpdate(sql3);
            stmt.executeUpdate(sql2);
		    common.connectClose();
		} catch (SQLException e) {
		    System.out.println(e);
			JOptionPane.showMessageDialog(null, "数据源错误!!!");
			return;
		}
        JOptionPane.showMessageDialog(null, "支付成功!祝您生活愉快!");
        Purchase.this.setVisible(false);
        Purchase Purchase =new Purchase();
        Purchase.setVisible(true);
    }

    private void jToggleButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                               
        System.exit(0);
    }                                              

    private void jToggleButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                               
    	Purchase.this.setVisible(false);
        Menu menu =new Menu();
        menu.setVisible(true);
    }                                              

    public static void main(String args[]) {
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Purchase.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Purchase.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Purchase.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Purchase.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Purchase().setVisible(true);
            }
        });
    }

3、列车运行管理代码实现

Common common=new Common();
	Statement stmt = null;
	PreparedStatement pstm =null;
	private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton10;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton8;
    private javax.swing.JButton jButton9;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JScrollPane jScrollPane1;
    private JTable jTable1;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JToggleButton jToggleButton1;
    private javax.swing.JToggleButton jToggleButton2;

    public RunManagement() {
        initComponents();
    }
    
    private void initComponents() {

        jPanel2 = new javax.swing.JPanel();
        jToggleButton1 = new javax.swing.JToggleButton();
        jToggleButton2 = new javax.swing.JToggleButton();
        jButton1 = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTable1 = new JTable();
        jButton8 = new javax.swing.JButton();
        jButton9 = new javax.swing.JButton();
        jButton10 = new javax.swing.JButton();
        jTextField1 = new javax.swing.JTextField();
        jButton2 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jPanel2.setBackground(new java.awt.Color(18 ,161, 130));
        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "车站信息管理系统", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("微软雅黑", 1, 24), new java.awt.Color(255, 255, 255))); // NOI18N
        jPanel2.setAutoscrolls(true);

        jToggleButton1.setText("退出");
        jToggleButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jToggleButton1ActionPerformed(evt);
            }
        });

        jToggleButton2.setText("返回");
        jToggleButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jToggleButton2ActionPerformed(evt);
            }
        });

        jButton1.setText("修改");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null},
                {null, null, null, null}
            },
            new String [] {
                "Title 1", "Title 2", "Title 3", "Title 4"
            }
        ));
        jScrollPane1.setViewportView(jTable1);

        jButton8.setText("刷新");
        jButton8.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton8ActionPerformed(evt);
            }
        });

        jButton9.setText("删除");
        jButton9.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton9ActionPerformed(evt);
            }
        });

        jButton10.setText("查询");
        jButton10.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton10ActionPerformed(evt);
            }
        });

        jButton2.setText("增加");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                        .addGap(0, 699, Short.MAX_VALUE)
                        .addComponent(jToggleButton2)
                        .addGap(18, 18, 18)
                        .addComponent(jToggleButton1))
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addComponent(jScrollPane1)
                        .addContainerGap())
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 228, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(jButton10)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(jButton2)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jButton1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jButton9)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButton8)
                        .addGap(54, 54, 54))))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                .addGap(15, 15, 15)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton10)
                    .addComponent(jButton1)
                    .addComponent(jButton9)
                    .addComponent(jButton8)
                    .addComponent(jButton2))
                .addGap(18, 18, 18)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 383, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jToggleButton1)
                    .addComponent(jToggleButton2))
                .addContainerGap())
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(47, 47, 47)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(282, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(50, 50, 50)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(359, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>                        

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
		String No=JOptionPane.showInputDialog("请输入车次:");
		if(!common.isNull(No)) return;
		String quality=JOptionPane.showInputDialog("请输入站点编号:");
		if(!common.isNull(quality)) return;
		String Name=JOptionPane.showInputDialog("请输入新的到达时间:");
		if(!common.isNull(Name)) return;
		String price=JOptionPane.showInputDialog("请输入新的离开时间:");
		if(!common.isNull(price)) return;
		String beginTime=JOptionPane.showInputDialog("请输入新的余票数量:");
		if(!common.isNull(beginTime)) return;
		String endTime=JOptionPane.showInputDialog("请输入新的票价:");
		if(!common.isNull(endTime)) return;
		try {
			common.connectDB();
			String sql = "update run set arriveTime='"+Name+"',leaveTime='"+price+"',ticketNum='"+beginTime+"' ,ticketPrice='"+endTime+"' where trainId='"+No+"' and stationId='"+quality+"'";
			stmt = common.conn.createStatement();
			stmt.executeUpdate(sql);
			JOptionPane.showMessageDialog(null, "修改成功!");
			common.connectClose();
		}catch (SQLException e) {
			e.printStackTrace();
		}
		finally {
			if (stmt != null) {
				try {
					stmt.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
				if (common.conn != null) {
					try {
						common.connectClose();
					} catch (SQLException e) {
						e.printStackTrace();
					}
				}
			}
		}
    }          
    
    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
		String No=JOptionPane.showInputDialog("请输入车次:");
		if(!common.isNull(No)) return;
		String quality=JOptionPane.showInputDialog("请输入站点编号:");
		if(!common.isNull(quality)) return;
		String Name=JOptionPane.showInputDialog("请输入新的到达时间:");
		if(!common.isNull(Name)) return;
		String price=JOptionPane.showInputDialog("请输入新的离开时间:");
		if(!common.isNull(price)) return;
		String beginTime=JOptionPane.showInputDialog("请输入新的余票数量:");
		if(!common.isNull(beginTime)) return;
		String endTime=JOptionPane.showInputDialog("请输入新的票价:");
		if(!common.isNull(endTime)) return;
		try {
			common.connectDB();
			String sql = "insert into run (trainId,stationId,arriveTime,leaveTime,ticketNum,ticketPrice)"+ "values('"+No+"','"+quality+"','"+Name+"','"+price+"','"+beginTime+"','"+endTime+"')";
			stmt = common.conn.createStatement();
			stmt.executeUpdate(sql);
			JOptionPane.showMessageDialog(null, "添加成功");
			common.connectClose();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		finally {
			if (stmt != null) {
				try {
					stmt.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
				if (common.conn != null) {
					try {
						common.connectClose();
					} catch (SQLException e) {
						e.printStackTrace();
					}
				}
			}

		}
} 
    
    private void jButton8ActionPerformed(java.awt.event.ActionEvent evt) {                                               
		try {
			common.connectDB();
			String sql = "select * from run";
			pstm = common.conn.prepareStatement(sql);
			ResultSet rs = pstm.executeQuery();
			int count = 0;
			while (rs.next()) {
				count++;
			}
			rs = pstm.executeQuery();
			Object[][] info = new Object[count][7];
			count = 0;
			while (rs.next()) {
				info[count][0] = rs.getString("trainId");
				info[count][1] = Integer.valueOf(rs.getInt("stationId"));
				info[count][2] = rs.getString("arriveTime");
				info[count][3] = rs.getString("leaveTime");
				info[count][4] = Integer.valueOf(rs.getInt("ticketNum"));
				info[count][5] = Float.valueOf(rs.getFloat("ticketPrice"));
				count++;
			}
			String[] title = { "车次", "站点编号", "到达时间","离开时间","余票数量","票价" };
			this.jTable1 = new JTable(info, title);
			this.jScrollPane1.getViewport().add(jTable1);
			common.connectClose();
		}catch (SQLException sqle) {
			JOptionPane.showMessageDialog(null, "数据源错误", "错误", JOptionPane.ERROR_MESSAGE);
		}
    }
    
    private void jButton9ActionPerformed(java.awt.event.ActionEvent evt) {
		String trainId=JOptionPane.showInputDialog("请输入车次:");
		if(!common.isNull(trainId)) return;
		String No=JOptionPane.showInputDialog("请输入站点编号:");
		if(!common.isNull(No)) return;
		try {
			common.connectDB();
			String sql = "delete  from run where trainId='"+trainId+"' and stationId='"+No+"';";
			stmt = common.conn.createStatement();
			stmt.executeUpdate(sql);
			JOptionPane.showMessageDialog(null, "删除成功!");
			common.connectClose();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		finally {
			if (stmt != null) {
				try {
					stmt.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
				if (common.conn != null) {
					try {
						common.connectClose();
					} catch (SQLException e) {
						e.printStackTrace();
					}
				}
			}
		}
    }
    
    private void jButton10ActionPerformed(java.awt.event.ActionEvent evt) {                                               
		String text=jTextField1.getText();
		try {
			common.connectDB();
			String sql = "select * from run where  trainId like '%"+text+"%' or stationId like '%"+text+"%'";
			pstm = common.conn.prepareStatement(sql);
			ResultSet rs = pstm.executeQuery();
			int count = 0;
			while (rs.next()) {
				count++;
			}
			rs = pstm.executeQuery();
			Object[][] info = new Object[count][7];
			count = 0;
			while (rs.next()) {
				info[count][0] = rs.getString("trainId");
				info[count][1] = Integer.valueOf(rs.getInt("stationId"));
				info[count][2] = rs.getString("arriveTime");
				info[count][3] = rs.getString("leaveTime");
				info[count][4] = Integer.valueOf(rs.getInt("ticketNum"));
				info[count][5] = Float.valueOf(rs.getFloat("ticketPrice"));
				count++;
			}
			String[] title = { "车次", "站点编号", "到达时间","离开时间","余票数量","票价" };
			this.jTable1 = new JTable(info, title);
			this.jScrollPane1.getViewport().add(jTable1);
			common.connectClose();
		}catch (SQLException sqle) {
			JOptionPane.showMessageDialog(null, "数据源错误", "错误", JOptionPane.ERROR_MESSAGE);
		}
    }

    private void jToggleButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                               
       RunManagement.this.setVisible(false);
        ManagementCenter ManagementCenter =new ManagementCenter();
        ManagementCenter.setVisible(true);
    }                                              

    private void jToggleButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                               
        System.exit(0);
    }                                              

    public static void main(String args[]) {
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(RunManagement.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(RunManagement.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(RunManagement.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(RunManagement.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new RunManagement().setVisible(true);
            }
        });
    }

因篇幅有限,只展示上述主要模块的代码。以上模块的代码基本覆盖了整个系统代码的实现方法,其他模块的基本按照上述代码写法复制粘贴即可,如果有需要完整源代码的可以v我(备注来源):ES-Lad或者自行下载:https://download.csdn.net/download/weixin_46671666/73819900

  • 2
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值