您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页JDBC数据库综合示例

JDBC数据库综合示例

来源:化拓教育网
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);该函数真正写入到数据库中。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务