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

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

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

角色:
1167156-20181130181421669-1605014382.png
人表示 一个角色,圆圈表示一个功能;
1167156-20181130181422674-327371643.png

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

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

2.设计数据库:
1167156-20181130181423712-673437028.png

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

1167156-20181130181425085-692741611.png

1167156-20181130181425373-1283612668.png

//rowData用来存放行数据
//columnName用来存放列名
1167156-20181130181425644-2028911214.png
1167156-20181130181425968-979696214.png
Vector()是一个容器;
1167156-20181130181426457-961804163.png
一行数据,加入到rowData

1167156-20181130181426747-981973003.png

//初始化JTable
1167156-20181130181426946-1271533368.png

1167156-20181130181427156-1380813880.png

1167156-20181130181427519-35750215.png

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

---------------------------
1167156-20181130181428165-1087158589.png

1167156-20181130181428471-417986449.png

1167156-20181130181428785-1941567570.png

1167156-20181130181429003-1942506888.png

1167156-20181130181430531-1432919618.png

1167156-20181130181430929-1331527035.png

1167156-20181130181431293-2040278619.png

1167156-20181130181431566-265351151.png

属性->路径->添加3个JAR包;
1167156-20181130181431884-461071471.png

new实例化:
1167156-20181130181432156-1555390854.png

1167156-20181130181432405-1462037370.png
数据全部都从数据库中取出来了;

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

学生管理系统需求文档

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

 

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

uml-->IBM-rational rose 2003或7.0

uml-->jude

 

uml可以做出这样几种图

1、use case图--用例图(可以清晰的描述该系统有什么角色和功能)

2、时序图

3、类图

1167156-20181130181432659-1487220572.jpg

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

1167156-20181130181432897-951756643.jpg

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); } }
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]

/** * 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); } }
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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值