1、数据库表结构 student
2、数据源定义如下:选择用户DSN
3、学生表操作类
package ex520;
import java.sql.*;
public class StudentDao {
private String driver = \"sun.jdbc.odbc.JdbcOdbcDriver\"; private String url = \"jdbc:odbc:mydb\";
private void executeUpdate(String sql) { try {
Class.forName(driver);
Connection con = DriverManager.getConnection(url); Statement cmd = con.createStatement(); cmd.executeUpdate(sql); con.close();
} catch (Exception ex) { ex.printStackTrace(); } }
public void addStudent(String sno, String sname, String major, int zg) {
String sql = \"insert into student values('\" + sno + \"','\" + sname + \"','\" + major + \"',\" + zg + \")\"; executeUpdate(sql); }
public void deleteStudentBySno(String sno) {
String sql = \"delete from student where sno='\" + sno + \"'\"; executeUpdate(sql); }
public String[][] queryStudents() { String[][] rows = null; try {
Class.forName(driver);
Connection con = DriverManager.getConnection(url); Statement cmd = con.createStatement();
String sql = \"select count(*) from student\"; ResultSet rs = cmd.executeQuery(sql); rs.next();
int rowcount = rs.getInt(1); rows = new String[rowcount][4]; sql = \"select * from student\"; rs = cmd.executeQuery(sql); rowcount = 0;
while (rs.next()) {
for (int i = 1; i <= 4; i++)
rows[rowcount][i - 1] = rs.getString(i); rowcount++; }
con.close();
} catch (Exception ex) { ex.printStackTrace(); }
return rows; } }
4、主界面
package ex520;
import javax.swing.*; import java.awt.*;
import java.awt.event.*;
public class MainFrm extends JFrame { private void initMenu() {
JMenuBar bar = new JMenuBar(); JMenu m1 = new JMenu(\"学生管理\"); JMenu m2 = new JMenu(\"课程管理\");
JMenuItem m11 = new JMenuItem(\"学生信息管理\"); JMenuItem m12 = new JMenuItem(\"增加学生\"); JMenuItem m13 = new JMenuItem(\"退出\");
m13.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { exit_Clicked(); } });
m11.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { newSubFrm_Clicked(); } });
m1.add(m11); m1.add(m12);
m1.addSeparator(); m1.add(m13); bar.add(m1); bar.add(m2);
this.setJMenuBar(bar); }
private void newSubFrm_Clicked() { new StudentFrm(); }
private void exit_Clicked() {
if (JOptionPane.showConfirmDialog(this,
\"确认退出?\", \"退出系统\",
JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE)
== JOptionPane.YES_OPTION)
System.exit(0);
}
}
public MainFrm() {
JPanel jp = (JPanel) this.getContentPane(); initMenu();
this.setSize(1000, 600); this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); }
public static void main(String[] args) { new MainFrm(); }
5、学生管理界面
package ex520;
import javax.swing.*;
import javax.swing.table.DefaultTableModel; import java.awt.*;
import java.awt.event.*;
public class StudentFrm extends JFrame { private JTable table = null;
private String[] cols = { \"学号\姓名\专业\是否有资格\" }; private JButton deleteBtn = new JButton(\"删除\"); private StudentDao studentDao = new StudentDao(); private void initTable() { String[][] rows = studentDao.queryStudents(); for (int i = 0; i < rows.length; i++) if (\"0\".equals(rows[i][3])) }
rows[i][3] = \"有资格\"; else
rows[i][3] = \"无资格\"; table = new JTable(rows, cols);
private void updateTable() { String[][] rows = studentDao.queryStudents(); for (int i = 0; i < rows.length; i++) if (\"0\".equals(rows[i][3])) rows[i][3] = \"有资格\";
}
else
rows[i][3] = \"无资格\";
table.setModel(new DefaultTableModel(rows, cols));
private void deleteBtn_Clicked() { int row = table.getSelectedRow(); if (row > -1) { String sno = (String) table.getValueAt(row, 0); studentDao.deleteStudentBySno(sno);
JOptionPane.showMessageDialog(this, \"学号为\" + sno + \"记录删除成功!\"); updateTable(); } } public StudentFrm() { JPanel jp = (JPanel) this.getContentPane(); initTable(); JScrollPane jsp_table = new JScrollPane(table); jp.add(jsp_table); JPanel jp_top = new JPanel(); jp_top.add(deleteBtn); jp.add(jp_top, BorderLayout.NORTH); deleteBtn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { deleteBtn_Clicked(); } }); this.setSize(600, 400); this.setVisible(true); } public static void main(String[] args) { new StudentFrm(); } }
StudentFrm窗体 deleteBtn按钮点击调用 deleteBtn_Clicked() 该函数中获取待删除学号, 调用 studentDao.deleteStudentBySno(sno); 该函数形成一个delete SQL语句,调用StudentDao中的executeUpdate(String sql);该函数真正写入到数据库中。