![1167156-20181130181422961-1690017996.png](https://i-blog.csdnimg.cn/blog_migrate/8a7983d539f80cad48858efc22eabdbb.png)
![1167156-20181130181423212-1506306066.png](https://i-blog.csdnimg.cn/blog_migrate/41101babd9c4b780f8002518db926e90.png)
![1167156-20181130181423472-95029738.png](https://i-blog.csdnimg.cn/blog_migrate/8dcf6135f2d284137003e0eb42d00922.png)
![1167156-20181130181423712-673437028.png](https://i-blog.csdnimg.cn/blog_migrate/6a62678d3e9c9b903f46e7b161a1c252.png)
![1167156-20181130181423995-1262979599.png](https://i-blog.csdnimg.cn/blog_migrate/a3cd661518aced4ffaa964aaae08070d.png)
![1167156-20181130181425085-692741611.png](https://i-blog.csdnimg.cn/blog_migrate/2168aec9fe0a8268f17a1bc7ec31c032.png)
![1167156-20181130181425373-1283612668.png](https://i-blog.csdnimg.cn/blog_migrate/369b941e0276e40298d6db4caf99e579.png)
![1167156-20181130181425644-2028911214.png](https://i-blog.csdnimg.cn/blog_migrate/0d30c0cf3aa7cb102eeb1d50d2b3e058.png)
![1167156-20181130181425968-979696214.png](https://i-blog.csdnimg.cn/blog_migrate/79bd38f0c0f1f206166957421a512ed8.png)
![1167156-20181130181426457-961804163.png](https://i-blog.csdnimg.cn/blog_migrate/43e5aac771d929be7458f64f6d6e94db.png)
![1167156-20181130181426747-981973003.png](https://i-blog.csdnimg.cn/blog_migrate/580a2ca9af92204ecaf8759b68152027.png)
![1167156-20181130181426946-1271533368.png](https://i-blog.csdnimg.cn/blog_migrate/cd2646a9af2f3a3b75fdd65e6000e3d5.png)
![1167156-20181130181427156-1380813880.png](https://i-blog.csdnimg.cn/blog_migrate/eb2754f862971bc7b656cddd3a53e52e.png)
![1167156-20181130181427519-35750215.png](https://i-blog.csdnimg.cn/blog_migrate/314b427d99d754624d31762bfe022618.png)
![1167156-20181130181427826-1739634859.png](https://i-blog.csdnimg.cn/blog_migrate/093950a9acc5ce15e246ef0cd9fe5709.png)
![1167156-20181130181428165-1087158589.png](https://i-blog.csdnimg.cn/blog_migrate/0b13593e690ad6d8e596d70ab23bc57e.png)
![1167156-20181130181428471-417986449.png](https://i-blog.csdnimg.cn/blog_migrate/c879c07d2ca3eb1a2df95714cf9fb73a.png)
![1167156-20181130181428785-1941567570.png](https://i-blog.csdnimg.cn/blog_migrate/9c78deb25cc5cfcbe156c44ef980d118.png)
![1167156-20181130181431293-2040278619.png](https://i-blog.csdnimg.cn/blog_migrate/42ef045e5780b6ccf467861b84cc26c8.png)
![1167156-20181130181431566-265351151.png](https://i-blog.csdnimg.cn/blog_migrate/1563b8ddfc8ebe53c9c28fd09b3f7794.png)
![1167156-20181130181432156-1555390854.png](https://i-blog.csdnimg.cn/blog_migrate/754452a0d3c0af1c49040c651f8e6121.png)
![1167156-20181130181432405-1462037370.png](https://i-blog.csdnimg.cn/blog_migrate/2f425d8dbb9f4c0540e77861508663ae.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](https://i-blog.csdnimg.cn/blog_migrate/c8f62d263bd5d36a6d6f8de057f60bd0.jpeg)
2、设计界面(原型开发[先搞定界面,在写代码])
![1167156-20181130181432897-951756643.jpg](https://i-blog.csdnimg.cn/blog_migrate/96aeb9eea7eade0219637451134e9ff0.jpeg)
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);
}
}