欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java+SQL server2008學(xué)生信息管理系統(tǒng)源碼

 更新時間:2018年01月18日 09:22:55   作者:蔡金平  
這篇文章主要為大家詳細(xì)介紹了java+SQL server2008學(xué)生信息管理系統(tǒng)源碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了java學(xué)生信息管理系統(tǒng)源碼的具體代碼,供大家參考,具體內(nèi)容如下

1、StudetManage類(主界面)

package com.sms3; 
 
import java.awt.*; 
import javax.swing.*; 
import java.awt.event.*; 
 
public class StudentManage extends JFrame implements ActionListener  
{ 
  /** 
   * @param args 
   */ 
  public static void main(String[] args)  
  { 
    // TODO Auto-generated method stub 
    new StudentManage(); 
  } 
 
  //========面板控件 
  private JLabel queryLab = null; 
  private JTextField queryTxt = null; 
  private JButton queryBtn = null; 
  private JButton allBtn = null; 
  private JTable resultTb = null; 
  private JScrollPane jsp = null; 
  private JButton addBtn = null; 
  private JButton deleteBtn = null; 
  private JButton updateBtn = null; 
  private JPanel top = null; 
  private JPanel bottom = null; 
  //======== 
  private StuModel sm = null; 
   
  //構(gòu)造函數(shù) 
  public StudentManage() 
  { 
    /***************************初始化面板控件***********************/ 
    //========查詢欄 
    queryLab = new JLabel("請輸入姓名:"); 
    queryTxt = new JTextField(10); 
    queryBtn = new JButton("查詢"); 
    allBtn = new JButton("全部"); 
    //......添加查詢欄監(jiān)聽 
    queryBtn.addActionListener(this); 
    queryBtn.setActionCommand("query"); 
    allBtn.addActionListener(this); 
    allBtn.setActionCommand("all"); 
    //========增刪改欄 
    addBtn = new JButton("添加"); 
    deleteBtn = new JButton("刪除"); 
    updateBtn = new JButton("修改"); 
    //......添加增刪改欄監(jiān)聽 
    addBtn.addActionListener(this); 
    addBtn.setActionCommand("add"); 
    deleteBtn.addActionListener(this); 
    deleteBtn.setActionCommand("delete"); 
    updateBtn.addActionListener(this); 
    updateBtn.setActionCommand("update"); 
    //========創(chuàng)建窗口整體布局 
    //......頂層查詢欄 
    top = new JPanel(); 
    top.add(queryLab); 
    top.add(queryTxt); 
    top.add(queryBtn); 
    top.add(allBtn); 
    //......底層增刪改欄 
    bottom = new JPanel(); 
    bottom.add(addBtn); 
    bottom.add(deleteBtn); 
    bottom.add(updateBtn); 
    //......中間層顯示欄 
    sm = new StuModel(); 
    String sql = "select * from stu"; 
    sm.queryStu(sql, null); 
    resultTb = new JTable(sm); 
    jsp = new JScrollPane(resultTb); 
    //......構(gòu)建整體布局 
    this.add(top,BorderLayout.NORTH); 
    this.add(jsp,BorderLayout.CENTER); 
    this.add(bottom,BorderLayout.SOUTH); 
    //========設(shè)置窗口屬性 
    this.setSize(400, 300); 
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    this.setVisible(true); 
    this.setResizable(false); 
  } 
   
  //監(jiān)聽 
  @Override 
  public void actionPerformed(ActionEvent e) 
  { 
    // TODO Auto-generated method stub 
    if(e.getActionCommand().equals("query")) { 
      /*********************查詢***********************/ 
      //========獲取輸入學(xué)生的姓名 
      String name = queryTxt.getText().trim(); 
      if(name.length() != 0) { 
        //========姓名輸入有效時,執(zhí)行查詢 
        //......定義參數(shù) 
        String sql = "select * from stu where stuName=?"; 
        String []paras = {name}; 
        //......更新模型 
        jtableUpdate(sql, paras); 
      } else { 
        //========姓名為空時,設(shè)置提醒 
        JOptionPane.showMessageDialog(this, "姓名輸入不能為空"); 
      } 
    } else if(e.getActionCommand().equals("add")) { 
      /*********************添加***********************/ 
      new StuAddDialog(this, "添加學(xué)生信息", true); 
      String sql = "select * from stu"; 
      jtableUpdate(sql, null); 
    } else if(e.getActionCommand().equals("all")) { 
      /*********************全部顯示***********************/ 
      String sql = "select * from stu"; 
      jtableUpdate(sql, null); 
    } else if(e.getActionCommand().equals("delete")) { 
      /*********************刪除***********************/ 
      //========獲取選擇行號 
      int rowNum = this.resultTb.getSelectedRow(); 
      if(rowNum == -1) { 
        JOptionPane.showMessageDialog(this, "請選擇一行"); 
        return ; 
      } 
      //========獲取學(xué)生ID號 
      String stuId = (String)sm.getValueAt(rowNum, 0); 
      //========刪除學(xué)生 
      String sql = "delete from stu where stuId=?"; 
      String []paras = {stuId}; 
      StuModel tmp = new StuModel(); 
      tmp.cudStu(sql, paras); 
      //========更新模型 
      sql = "select * from stu"; 
      jtableUpdate(sql, null); 
    } else if(e.getActionCommand().equals("update")) { 
      /*********************修改***********************/ 
      //========獲取選擇行號 
      int rowNum = this.resultTb.getSelectedRow(); 
      if(rowNum == -1) { 
        JOptionPane.showMessageDialog(this, "請選擇一行"); 
        return ; 
      } 
      new StuUpdateDialog(this, "修改學(xué)生信息", true, sm, rowNum); 
      String sql = "select * from stu"; 
      jtableUpdate(sql, null); 
    } 
  } 
   
  //========更新JTable內(nèi)數(shù)據(jù) 
  public void jtableUpdate(String sql, String[] paras) 
  { 
    //......創(chuàng)建模型 
    sm = new StuModel(); 
    sm.queryStu(sql, paras); 
    //......更新顯示 
    resultTb.setModel(sm); 
  } 
 
} 

2、StuModel類(學(xué)生數(shù)據(jù)庫模型)

package com.sms3; 
 
import java.sql.ResultSet; 
import java.util.Vector; 
import javax.swing.table.AbstractTableModel; 
 
public class StuModel extends AbstractTableModel{ 
  private Vector columnNames; 
  private Vector rowDates; 
   
  // 
  public StuModel() 
  { 
    String sql = "select * from stu"; 
    String []paras = {}; 
     
  } 
   
  //========增刪改學(xué)生 
  public boolean cudStu(String sql, String []paras) 
  { 
    return new SqlHelper().cudExecute(sql, paras); 
  } 
   
  //========查詢學(xué)生 
  public void queryStu(String sql, String []paras) 
  { 
    SqlHelper sqlHelper = null; 
    //========初始化JTable信息 
    columnNames = new Vector(); 
    rowDates = new Vector(); 
    columnNames.add("學(xué)號"); columnNames.add("名字"); 
    columnNames.add("性別"); columnNames.add("年齡"); 
    columnNames.add("籍貫"); columnNames.add("系別"); 
     
    try { 
      sqlHelper = new SqlHelper(); 
      ResultSet rs = sqlHelper.queryExecute(sql, paras); 
      while(rs.next()) { 
        Vector row = new Vector(); 
        row.add(rs.getString(1)); 
        row.add(rs.getString(2)); 
        row.add(rs.getString(3)); 
        row.add(rs.getString(4)); 
        row.add(rs.getString(5)); 
        row.add(rs.getString(6)); 
        rowDates.add(row); 
      } 
    } catch (Exception e) { 
      // TODO: handle exception 
    } finally { 
      sqlHelper.close(); 
    } 
     
  } 
 
  @Override 
  public int getColumnCount() { 
    // TODO Auto-generated method stub 
    return this.columnNames.size(); 
  } 
 
  @Override 
  public int getRowCount() { 
    // TODO Auto-generated method stub 
    return this.rowDates.size(); 
  } 
 
  @Override 
  public Object getValueAt(int row, int col) { 
    // TODO Auto-generated method stub 
    if(!rowDates.isEmpty()) 
      return ((Vector)this.rowDates.get(row)).get(col); 
    else 
      return null; 
  } 
 
   
  @Override 
  public String getColumnName(int column) { 
    // TODO Auto-generated method stub 
    return (String)this.columnNames.get(column); 
  } 
 
   
} 

3、StuAddDialog類(添加學(xué)生信息子界面)

package com.sms3; 
 
import java.awt.BorderLayout; 
import java.awt.Dialog; 
import java.awt.Frame; 
import java.awt.GridLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
 
import javax.swing.*; 
 
public class StuAddDialog extends JDialog implements ActionListener{ 
  //=========面板控件 
  //......左側(cè)標(biāo)題欄 
  private JLabel idLab,nameLab,sexLab,ageLab,jgLab,deptLab; 
  //......右側(cè)信息選擇填寫欄 
  private JTextField idTxt,nameTxt,sexTxt,ageTxt,jgTxt,deptTxt; 
  //......添加和取消按鈕 
  private JButton addBtn,cancelBtn; 
  //......布局控件 
  private JPanel left,center,bottom; 
   
  //構(gòu)造函數(shù) 
  public StuAddDialog(Frame owner, String title, boolean modal)  
  { 
    //========重寫父類方法 
    super(owner, title, modal); 
    //========左側(cè)標(biāo)簽欄 
    idLab = new JLabel("學(xué)號: "); 
    nameLab = new JLabel("姓名: "); 
    sexLab = new JLabel("性別: "); 
    ageLab = new JLabel("年齡: "); 
    jgLab = new JLabel("籍貫: "); 
    deptLab = new JLabel("系別: "); 
    //========右側(cè)信息填寫欄 
    idTxt = new JTextField(); 
    nameTxt = new JTextField(); 
    sexTxt = new JTextField(); 
    ageTxt = new JTextField(); 
    jgTxt = new JTextField(); 
    deptTxt = new JTextField(); 
    //========添加和取消按鈕 
    addBtn = new JButton("添加"); 
    cancelBtn = new JButton("取消"); 
    //......添加監(jiān)聽 
    addBtn.addActionListener(this); 
    addBtn.setActionCommand("add"); 
    cancelBtn.addActionListener(this); 
    cancelBtn.setActionCommand("cancel"); 
    //========創(chuàng)建布局 
    //......創(chuàng)建左邊欄 
    left = new JPanel(); 
    left.setLayout(new GridLayout(6, 1)); 
    left.add(idLab); left.add(nameLab);  
    left.add(sexLab); left.add(ageLab);  
    left.add(jgLab); left.add(deptLab);  
    //......創(chuàng)建右邊欄 
    center = new JPanel(); 
    center.setLayout(new GridLayout(6, 1)); 
    center.add(idTxt); center.add(nameTxt); 
    center.add(sexTxt); center.add(ageTxt); 
    center.add(jgTxt); center.add(deptTxt); 
    //========底層添加和取消按鈕 
    bottom = new JPanel(); 
    bottom.add(addBtn); 
    bottom.add(cancelBtn); 
    //========整體布局 
    this.add(left,BorderLayout.WEST); 
    this.add(center,BorderLayout.CENTER); 
    this.add(bottom,BorderLayout.SOUTH); 
    //========設(shè)置窗口屬性 
     
    this.setSize(300, 250); 
    this.setResizable(false); 
    this.setVisible(true); 
  } 
 
  @Override 
  public void actionPerformed(ActionEvent e)  
  { 
    // TODO Auto-generated method stub 
    if(e.getActionCommand().equals("add")) { 
      /***********************添加學(xué)生信息**************************/ 
      StuModel tmp = new StuModel(); 
      String sql = "insert into stu values(?,?,?,?,?,?)"; 
      String []paras = {idTxt.getText(),nameTxt.getText(),sexTxt.getText(), 
              ageTxt.getText(),jgTxt.getText(),deptTxt.getText()}; 
      if(!tmp.cudStu(sql, paras)) 
        JOptionPane.showMessageDialog(this, "添加學(xué)生信息失敗"); 
      //========關(guān)閉窗口 
      this.dispose(); 
    } else if(e.getActionCommand().equals("cancel")) { 
      //========關(guān)閉窗口 
      this.dispose(); 
    } 
  } 
} 

4、StuUpdateDialog類(修改學(xué)生信息子界面)

package com.sms3; 
 
import java.awt.BorderLayout; 
import java.awt.Frame; 
import java.awt.GridLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
 
import javax.swing.JButton; 
import javax.swing.JDialog; 
import javax.swing.JLabel; 
import javax.swing.JOptionPane; 
import javax.swing.JPanel; 
import javax.swing.JTextField; 
import javax.swing.table.AbstractTableModel; 
 
public class StuUpdateDialog extends JDialog implements ActionListener{ 
  //=========面板控件 
  //......左側(cè)標(biāo)題欄 
  private JLabel idLab,nameLab,sexLab,ageLab,jgLab,deptLab; 
  //......右側(cè)信息選擇填寫欄 
  private JTextField idTxt,nameTxt,sexTxt,ageTxt,jgTxt,deptTxt; 
  //......添加和取消按鈕 
  private JButton addBtn,cancelBtn; 
  //......布局控件 
  private JPanel left,center,bottom; 
   
  //構(gòu)造函數(shù) 
  public StuUpdateDialog(Frame owner, String title, boolean modal, StuModel sm, int rowNum)  
  { 
    //========重寫父類方法 
    super(owner, title, modal); 
    //========左側(cè)標(biāo)簽欄 
    idLab = new JLabel("學(xué)號: "); 
    nameLab = new JLabel("姓名: "); 
    sexLab = new JLabel("性別: "); 
    ageLab = new JLabel("年齡: "); 
    jgLab = new JLabel("籍貫: "); 
    deptLab = new JLabel("系別: "); 
    //========右側(cè)信息填寫欄 
    idTxt = new JTextField();   
    idTxt.setText((String)sm.getValueAt(rowNum, 0)); 
    idTxt.setEditable(false); 
    nameTxt = new JTextField(); 
    nameTxt.setText((String)sm.getValueAt(rowNum, 1)); 
    sexTxt = new JTextField(); 
    sexTxt.setText((String)sm.getValueAt(rowNum, 2)); 
    ageTxt = new JTextField(); 
    ageTxt.setText((String)sm.getValueAt(rowNum, 3)); 
    jgTxt = new JTextField(); 
    jgTxt.setText((String)sm.getValueAt(rowNum, 4)); 
    deptTxt = new JTextField(); 
    deptTxt.setText((String)sm.getValueAt(rowNum, 5)); 
    //========添加和取消按鈕 
    addBtn = new JButton("修改"); 
    cancelBtn = new JButton("取消"); 
    //......添加監(jiān)聽 
    addBtn.addActionListener(this); 
    addBtn.setActionCommand("update"); 
    cancelBtn.addActionListener(this); 
    cancelBtn.setActionCommand("cancel"); 
    //========創(chuàng)建布局 
    //......創(chuàng)建左邊欄 
    left = new JPanel(); 
    left.setLayout(new GridLayout(6, 1)); 
    left.add(idLab); left.add(nameLab);  
    left.add(sexLab); left.add(ageLab);  
    left.add(jgLab); left.add(deptLab);  
    //......創(chuàng)建右邊欄 
    center = new JPanel(); 
    center.setLayout(new GridLayout(6, 1)); 
    center.add(idTxt); center.add(nameTxt); 
    center.add(sexTxt); center.add(ageTxt); 
    center.add(jgTxt); center.add(deptTxt); 
    //========底層添加和取消按鈕 
    bottom = new JPanel(); 
    bottom.add(addBtn); 
    bottom.add(cancelBtn); 
    //========整體布局 
    this.add(left,BorderLayout.WEST); 
    this.add(center,BorderLayout.CENTER); 
    this.add(bottom,BorderLayout.SOUTH); 
    //========設(shè)置窗口屬性 
     
    this.setSize(300, 250); 
    this.setResizable(false); 
    this.setVisible(true); 
  } 
 
  @Override 
  public void actionPerformed(ActionEvent e) { 
    // TODO Auto-generated method stub 
    if(e.getActionCommand().equals("update")) { 
    /***********************修改學(xué)生信息**************************/ 
      StuModel tmp = new StuModel(); 
      String sql = "update stu set stuName=?,stuSex=?,stuAge=?,stuJg=?,stuDept=? where stuId=?"; 
      String []paras = {nameTxt.getText(),sexTxt.getText(),ageTxt.getText(), 
              jgTxt.getText(),deptTxt.getText(),idTxt.getText()}; 
      if(!tmp.cudStu(sql, paras)) 
        JOptionPane.showMessageDialog(this, "修改學(xué)生信息失敗"); 
      //========關(guān)閉窗口 
      this.dispose(); 
    } else if(e.getActionCommand().equals("cancel")) { 
      //========關(guān)閉窗口 
      this.dispose(); 
    } 
  } 
} 

5、SqlHelper類(最底層數(shù)據(jù)庫類)

package com.sms3; 
 
import java.sql.*; 
 
public class SqlHelper { 
  //========數(shù)據(jù)庫 
  private Connection ct = null; 
  private PreparedStatement ps = null; 
  private ResultSet rs = null; 
  private String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; 
  private String url = "jdbc:sqlserver://127.0.0.1:1433;database=studentMan"; 
  private String user = "sa"; 
  private String passwd = "****"; 
   
  //========查詢 
  public ResultSet queryExecute(String sql, String []paras) 
  { 
    try { 
      //========1、加載驅(qū)動 
      Class.forName(driver); 
      //========2、連接 
      ct = DriverManager.getConnection(url, user, passwd); 
      //========3、創(chuàng)建PreparedStatement 
      ps = ct.prepareStatement(sql); 
      //========4、給問號賦值 
      if(paras != null) { 
        for(int i = 0; i < paras.length; i++) { 
          ps.setString(i + 1, paras[i]); 
        } 
      } 
      //========5、執(zhí)行 
      rs = ps.executeQuery(); 
    } catch (Exception e) { 
      // TODO: handle exception 
      e.printStackTrace(); 
    } finally { 
      //this.close(); 
    } 
    //========返回值 
    return rs; 
  } 
   
  //========增刪改 
  public boolean cudExecute(String sql, String []paras) 
  { 
    boolean b = true; 
    try { 
      //========1、加載驅(qū)動 
      Class.forName(driver); 
      //========2、連接 
      ct = DriverManager.getConnection(url, user, passwd); 
      //========3、創(chuàng)建PreparedStatement 
      ps = ct.prepareStatement(sql); 
      //========4、給問號賦值 
      for(int i = 0; i < paras.length; i++) { 
        ps.setString(i + 1, paras[i]); 
      } 
      //========5、執(zhí)行 
      if(ps.executeUpdate() != 1) b = false; 
    } catch (Exception e) { 
      // TODO: handle exception 
      b = false; 
      e.printStackTrace(); 
    } finally { 
      this.close(); 
    } 
    //========返回值 
    return b; 
  } 
   
  //========關(guān)閉資源 
  public void close() 
  { 
    try { 
      if(rs!=null) rs.close(); 
      if(ps!=null) ps.close(); 
      if(ct!=null) ct.close(); 
    } catch (Exception e2) { 
      // TODO: handle exception 
      e2.printStackTrace(); 
    } 
  } 
   
} 

主界面

添加學(xué)生信息界面

修改學(xué)生信息界面

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java多線程CAS操作原理代碼實例解析

    Java多線程CAS操作原理代碼實例解析

    這篇文章主要介紹了Java多線程CAS操作原理代碼實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • Java Resource路徑整理總結(jié)

    Java Resource路徑整理總結(jié)

    這篇文章主要介紹了 Java Resource路徑整理總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • SpringBoot2.x實現(xiàn)給Controller的RequestMapping添加統(tǒng)一前綴

    SpringBoot2.x實現(xiàn)給Controller的RequestMapping添加統(tǒng)一前綴

    這篇文章主要介紹了SpringBoot2.x實現(xiàn)給Controller的RequestMapping添加統(tǒng)一前綴,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • SpringBoot整合Mybatis實現(xiàn)CRUD

    SpringBoot整合Mybatis實現(xiàn)CRUD

    這篇文章主要介紹了SpringBoot整合Mybatis實現(xiàn)CRUD的相關(guān)知識,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-09-09
  • java實現(xiàn)Floyd算法

    java實現(xiàn)Floyd算法

    這篇文章主要為大家詳細(xì)介紹了java實現(xiàn)Floyd算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • java 對文件夾目錄進(jìn)行深度遍歷實例代碼

    java 對文件夾目錄進(jìn)行深度遍歷實例代碼

    這篇文章主要介紹了java 對文件夾目錄進(jìn)行深度遍歷實例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • java中的按位與(&)用法說明

    java中的按位與(&)用法說明

    這篇文章主要介紹了java中的按位與(&)用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Java中關(guān)于Collections集合工具類的詳細(xì)介紹

    Java中關(guān)于Collections集合工具類的詳細(xì)介紹

    Java提供了一個操作Set、List和Map等集合的工具類:Collections,該工具提供了大量方法對集合元素進(jìn)行排序、查詢和修改等操作,還提供了將集合對象設(shè)置為不可變、對集合對象實現(xiàn)同步控制等方法
    2021-09-09
  • 微信小程序--Ble藍(lán)牙

    微信小程序--Ble藍(lán)牙

    本文主要介紹了微信小程序--Ble藍(lán)牙的實現(xiàn)方法。文中附上源碼下載,具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • Spring Bean 依賴注入常見錯誤問題

    Spring Bean 依賴注入常見錯誤問題

    這篇文章主要介紹了Spring Bean 依賴注入常見錯誤問題,文中提到value的工作大體分為三個核心步驟,具體內(nèi)容詳情跟隨小編一起看看吧
    2021-09-09

最新評論