JAVA入门到精通-第69讲-学生管理系统1.项目分析






















学生管理系统需求文档
1、功能说明(使用use case图来说明 uml(统一建模语言))
uml(统一建模语言)有两款较好的开发工具来做建模
uml-->IBM-rational
rose 2003或7.0
uml-->jude
uml可以做出这样几种图
1、use case图--用例图(可以清晰的描述该系统有什么角色和功能)
2、时序图
3、类图

2、设计界面(原型开发[先搞定界面,在写代码])

3、设计数据库
学生表(stus)
字段名 类型 备注 是否为空字段 字段默认值
stuId varchar(30) 学生ID not null
stuName nvarchar(50) 学生名字 not null
stuSex nchar(1) 性别 not null default'男'
stuAge int 年龄 not null default>1
stuJg nvarchar(20) 籍贯 not null
stuDept nvarchar(30) 所在系 not null
-----------------------------------------------------------
JTable讲解[JTable_test1.java]
/** * JTable的使用 */import javax.swing.*;import java.util.*;import java.sql.*;import java.awt.*;import java.awt.event.*;public class JTable_Test1 extends JFrame{ //定义组件 //rowData用来存放行数据、columnNames存放列名 Vector rowData,columnNames; JTable jt=null; JScrollPane jsp=null; public static void main(String[] args) { JTable_Test1 sms=new JTable_Test1(); } //构造函数 public JTable_Test1(){ columnNames=new Vector<>(); //设置列名 columnNames.add("学号"); columnNames.add("名字"); columnNames.add("性别"); columnNames.add("年龄"); columnNames.add("籍贯"); columnNames.add("系别"); rowData=new Vector<>(); //rowData可以存放多行 Vector hang=new Vector<>(); hang.add("sp001"); hang.add("孙悟空"); hang.add("男"); hang.add("500"); hang.add("花果山"); hang.add("少林派"); //加入rowData rowData.add(hang); //初始化JTable jt=new JTable(rowData,columnNames); //初始化jsp JScrollPane jsp=new JScrollPane(jt); //把jsp放入到jframe this.add(jsp); this.setSize(400, 300); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); }}------------------------------------------------------------------
JTable与数据库的使用[JTable_test2.java]
/** * JTable的使用,从sql server数据库中取数据 */import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Vector;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable; public class JTable_Test2 extends JFrame{ //定义组件 //rowData用来存放行数据、columnNames存放列名 Vector rowData,columnNames; JTable jt=null; JScrollPane jsp=null; //定义操作数据库需要的组件 PreparedStatement ps=null; Connection ct=null; ResultSet rs=null; public static void main(String[] args) { new JTable_Test2(); } public JTable_Test2(){ columnNames=new Vector<>(); //设置列名 columnNames.add("学号"); columnNames.add("名字"); columnNames.add("性别"); columnNames.add("年龄"); columnNames.add("籍贯"); columnNames.add("系别"); rowData=new Vector<>(); //rowData可以存放多行 try { //1、加载驱动 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //2、得到连接 ct=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;databaseName=stussystem;user=sa;password=sa;"); if(!ct.isClosed()){ System.out.println("数据库连接成功"); }else{ System.out.println("数据库连接失败"); } 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); //把jsp放入到jframe this.add(jsp); this.setSize(400, 300); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); }}







浙公网安备 33010602011771号