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

图形化建模:uml(统一建模语言)
java<--->eclipse
uml<--->rational rose
uml<--->jude 可以开发uml,可以建模

use case 用例图
时序图
类图
use case用例图:
它可以很清晰地描述该系统有什么角色和功能

角色:
人表示 一个角色,圆圈表示一个功能;

把类图写出来,用逆向工程可以拿到代码;
图可以生成代码,每一个图都有意义,背后有代码;
但,很难满足需求;
-------------------------------------------------------
比较倾向于
先设计界面(原型开发,【先搞定界面,再写代码】),
再设计数据库;
(界面搞定可以先给客户去看)

功能很庞大,先把界面搞定,界面出来以后,
数据库一配,
中间业务逻辑一搭,项目出来了。
----------------------------------------------------

2.设计数据库:

3.设计界面(原型开发,先搞定界面,再写代码)PhotoShop
网页设计师、界面设计师把界面画出来;
(ps会的话,可以单独接活了)
PhotoShop学学挺好;
---------------------------------
-JTable的使用



//rowData用来存放行数据
//columnName用来存放列名
Vector()是一个容器;
一行数据,加入到rowData


//初始化JTable



-----------------------------------
--从数据库中取出学生信息
--建立数据库
工具-对象浏览器,显示相关信息:
spdb1-创建学生表
check 达到双重加锁的目的;

---------------------------








属性->路径->添加3个JAR包;

new实例化:

数据全部都从数据库中取出来了;

****************************************

学生管理系统需求文档

1、功能说明(使用use case图来说明 uml(统一建模语言))

 

uml(统一建模语言)有两款较好的开发工具来做建模

uml-->IBM-rational rose 20037.0

uml-->jude

 

uml可以做出这样几种图

1use 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]

55
55
 
1
/**
2
 * JTable的使用
3
 */
4
import javax.swing.*;
5
import java.util.*;
6
import java.sql.*;
7
import java.awt.*;
8
import java.awt.event.*;
9
public class JTable_Test1 extends JFrame{
10
    //定义组件
11
    //rowData用来存放行数据、columnNames存放列名
12
    Vector rowData,columnNames;
13
    JTable jt=null;
14
    JScrollPane jsp=null;
15
    public static void main(String[] args) {
16
        JTable_Test1 sms=new JTable_Test1();
17
    }
18
    //构造函数
19
    public JTable_Test1(){
20
        columnNames=new Vector<>();
21
        //设置列名
22
        columnNames.add("学号");
23
        columnNames.add("名字");
24
        columnNames.add("性别");
25
        columnNames.add("年龄");
26
        columnNames.add("籍贯");
27
        columnNames.add("系别");
28
       
29
        rowData=new Vector<>();
30
        //rowData可以存放多行
31
        Vector hang=new Vector<>();
32
        hang.add("sp001");
33
        hang.add("孙悟空");
34
        hang.add("男");
35
        hang.add("500");
36
        hang.add("花果山");
37
        hang.add("少林派");
38
       
39
        //加入rowData
40
        rowData.add(hang);
41
       
42
        //初始化JTable
43
        jt=new JTable(rowData,columnNames);
44
       
45
        //初始化jsp JScrollPane
46
        jsp=new JScrollPane(jt);
47
       
48
        //把jsp放入到jframe
49
        this.add(jsp);
50
       
51
        this.setSize(400, 300);
52
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
53
        this.setVisible(true);
54
    }
55
}

------------------------------------------------------------------


JTable与数据库的使用[JTable_test2.java]

x
99
 
1
/**
2
 * JTable的使用,从sql server数据库中取数据
3
 */
4
import java.sql.Connection;
5
import java.sql.DriverManager;
6
import java.sql.PreparedStatement;
7
import java.sql.ResultSet;
8
import java.sql.SQLException;
9
import java.util.Vector;
10
import javax.swing.JFrame;
11
import javax.swing.JScrollPane;
12
import javax.swing.JTable;
13
 
14
public class JTable_Test2 extends JFrame{
15
    //定义组件
16
    //rowData用来存放行数据、columnNames存放列名
17
    Vector rowData,columnNames;
18
    JTable jt=null;
19
    JScrollPane jsp=null;
20
    //定义操作数据库需要的组件
21
    PreparedStatement ps=null;
22
    Connection ct=null;
23
    ResultSet rs=null;
24
   
25
    public static void main(String[] args) {
26
        new JTable_Test2();
27
    }
28
   
29
    public JTable_Test2(){
30
        columnNames=new Vector<>();
31
        //设置列名
32
        columnNames.add("学号");
33
        columnNames.add("名字");
34
        columnNames.add("性别");
35
        columnNames.add("年龄");
36
        columnNames.add("籍贯");
37
        columnNames.add("系别");
38
       
39
        rowData=new Vector<>();
40
        //rowData可以存放多行
41
        try {
42
            //1、加载驱动
43
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
44
            //2、得到连接
45
        ct=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;databaseName=stussystem;user=sa;password=sa;");
46
            if(!ct.isClosed()){
47
                System.out.println("数据库连接成功");
48
            }else{
49
                System.out.println("数据库连接失败");
50
            }
51
           
52
            ps=ct.prepareStatement("select * from stu");
53
            rs=ps.executeQuery();
54
           
55
            while(rs.next()){
56
                Vector hang=new Vector();
57
                hang.add(rs.getString(1));
58
                hang.add(rs.getString(2));
59
                hang.add(rs.getString(3));
60
                hang.add(rs.getInt(4));
61
                hang.add(rs.getString(5));
62
                hang.add(rs.getString(6));
63
                //加入rowData
64
                rowData.add(hang);
65
            }
66
        } catch (Exception e) {
67
            e.printStackTrace();
68
        }finally{
69
            try {
70
                if(rs!=null){
71
                    rs.close();
72
                }
73
                if(ps!=null){
74
                    ps.close();
75
                }
76
                if(ct!=null){
77
                    ct.close();
78
                }
79
            } catch (SQLException e) {
80
                e.printStackTrace();
81
            }
82
        }
83
       
84
        //初始化JTable
85
        jt=new JTable(rowData,columnNames);
86
       
87
        //初始化jsp JScrollPane
88
        jsp=new JScrollPane(jt);
89
       
90
        //把jsp放入到jframe
91
        this.add(jsp);
92
       
93
        this.setSize(400, 300);
94
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
95
        this.setVisible(true);
96
    }
97
}
98
99













原文地址:https://www.cnblogs.com/xuxaut-558/p/10045799.html