zoukankan      html  css  js  c++  java
  • 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













  • 相关阅读:
    通过修改配置文件修改MySQL的时区设置
    五子棋输赢判定算法
    windows下通过压缩包安装MySQL
    systemctl命令详解
    普通用户从其他主机连接MySQL数据库
    ubuntu普通用户使用wireshark的权限问题
    账号管理文件/etc/passwd和/etc/shadow
    为什么处理有序数组比无序数组快?
    一些图像处理函数用法
    基于C++求两个数的最大公约数最小公倍数
  • 原文地址:https://www.cnblogs.com/xuxaut-558/p/10045799.html
Copyright © 2011-2022 走看看