java学生管理系统 mysql 韩顺平_2011-05-28——Java从入门到精通(韩顺平)自己整理的笔记(学生管理系统)...

本文介绍了如何使用MV模式和Model2模式实现学生信息系统的开发,包括数据库连接、JTable操作、Model封装及模式对话框的应用。通过实例展示了如何添加、修改和查询学生数据,以及Model2模式的优势和复杂性的权衡。
摘要由CSDN通过智能技术生成

2011年5月28日星期六

第七十讲 学生管理系统2

1.

package com.test1;

import javax.swing.*;

import java.awt.*;

import java.sql.*;

import java.util.*;

import java.awt.event.*;

public class Test3

extends JFrame

{

//定义一些控件

JPanel

jp1=null,jp2=null;

JLabel

jl1;

JButton

jb1,jb2,jb3,jb4;

JTable

jt;

JScrollPane

jsp;

JTextField

jtf;

Vector rowData,columnNames;

Connection

ct=null;

PreparedStatement ps=null;

ResultSet

rs=null;

public static void main(String[] args)

{

Test3 test3=new

Test3();

}

public Test3()

{

jb1=new JButton("查询");

jb2=new JButton("添加");

jb3=new JButton("修改");

jb4=new JButton("删除");

jl1=new JLabel("请输入姓名");

jtf=new JTextField(10);

jp1=new JPanel();

jp2=new JPanel();

jp1.add(jl1);

jp1.add(jtf);

jp1.add(jb1);

jp2.add(jb2);

jp2.add(jb3);

jp2.add(jb4);

columnNames=new Vector();

//设置列名

columnNames.add("学号");

columnNames.add("名字");

columnNames.add("性别");

columnNames.add("年龄");

columnNames.add("籍贯");

columnNames.add("系别");

rowData=new Vector();

try {

//加载驱动

Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

ct=DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;databaseName=spdb1","sa","sa");

ps=ct.prepareStatement("select * from stu");

rs=ps.executeQuery();

while(rs.next())

{

Vector hang=new Vector();

hang.add(rs.getString(1));

hang.add(rs.getString(2));

hang.add(rs.getString(3));

hang.add(rs.getInt(4));

hang.add(rs.getString(5));

hang.add(rs.getString(6));

//加入到rowData

rowData.add(hang);

}

}

catch (Exception e)

{

e.printStackTrace();

}

finally

{

try

{

if(rs!=null) rs.close();

if(ps!=null) ps.close();

if(ct!=null) ct.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

//初始化JTable

jt=new JTable(rowData,columnNames);

//初始化jsp JScrollPane

jsp=new JScrollPane(jt);

this.add(jp1,"North");//大小写不能瞎写啊

this.add(jp2,"South");//大小写不能瞎写啊

//把jsp放入到jframe

this.add(jsp);

this.setSize(400,300);

this.setVisible(true);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

this.setLocationRelativeTo(null);

}

}

2. MIS(管理信息系统——Management Information System)系统

,是一个由人、计算机及其他外围设备等组成的能进行信息的收集、传递、存贮、加工、维护和使用的系统。

3.TableModel

4.想办法把对表的操作封装成一个类

5. setModel(TableModel dataModel) :将此表的数据模型设置为

newModel,并向其注册以获取来自新数据模型的侦听器通知

6. jt=new JTable(sm);把模型放到JTable里面去

7.一行为一个向量Vector,然后再在rowData中加入很多的这些向量,就是有了很多行了

8.从向量里面取出来

//得到共有某行某列的数据

public Object getValueAt(int row, int column)

{

return

((Vector)this.rowData.get(row)).get(column);

}

发现表头没有数据,于是就在空白处右击选择source选择override/implements

methos选择getColumnName

public String getColumnName(int column)

{

return (String)(this.columnNames.get(column));

}

9.考虑多个构造函数

第七十一讲  学生管理系统3 增删版本

1.初步理解模式的概念(MV)

2.模式的概念

3.

if(e.getSource()==jb2)

{

StuAddDialog stuadddialog=new

StuAddDialog(this,"添加学生",true);//必须是模式对话框!!!

//添加完了以后要重新获得新的数据模型

sm=new StuModel();

jt.setModel(sm);//更新对话框,注意是重点!

}

分析:因为是true的话,那么只有用户点击才会退出JDialog,也才能执行下面的程序,而点击了以后,数据库就变更了,正好符合我们的要求;否则的话,在我们没有操作的时候就直接执行了下面的,显示的并没有更新,不错的设计!

4. JOptionPane.showMessageDialog(this, "请选择一行");//这个是弹出的对话框

第七十二讲 学生管理系统4 Model2模式

1.以上我们用的是model1模式(仅用于早期九几年):

最大特点:界面和和操作放在一起

优点:开发简单、方便

2.Model2模式:要达到界面和操作分离(一种程序的思想),将model1模式改成model2模式

优点:代码复用性好、可读性好、可维护性好

缺点:复杂性高

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值