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