新闻管理系统文档
1 需求描述
该系统要求实现合法用户对新闻一级标题信息的查询、删除、增加、修改功能。
并在操作过程中通过弹出对话框给予一定的提示。
2 系统功能描述
2.1 系统功能图
系统功能图如图1所示。
图1 系统功能图
2.2 系统主流程图
系统主流程图如图2所示。
否
图2 系统主流程图
3 数据库设计
本系统选择Access数据库,建立名为NewsMis.mdb的数据库,涉及到的数据库表设计如表1-表2所示。
4 类设计
本系统设计了News、Login、FirstTitleUI、MyConnection、Listener五个类,具体说明及类图如下:
(1
(2)News
(4)FirstTitleUI
5 关键代码
(1)登录代码
……
public void actionPerformed(ActionEvent evt){ if(evt.getSource().equals(btLogin)){
Connection datacon = null;
PreparedStatement pstat = null;
ResultSet rs = null;
try{
datacon = MyConnection.getConnection();
String str = "select * from UserInfo where UserId=? and UserPass=?";
pstat = datacon.prepareStatement(str);
pstat.setString(1, txtId.getText());
pstat.setString(2,txtPass.getText());
rs = pstat.executeQuery();
if(rs.next()){
txtId.setText("");
txtPass.setText("");
new FirstTitleUI().setVisible(true);
}
else
{
JOptionPane.showMessageDialog(null,"用户名或密码有错
误!","Sorry",JOptionPane.PLAIN_MESSAGE);
txtId.setText("");
txtPass.setText("");
}
}
catch(Exception e){
e.printStackTrace();
}
finally{
MyConnection.closePreparedStatement(pstat);
MyConnection.closeResult(rs);
MyConnection.closeConnection(datacon);
}
}
}
……
(2)查询、删除、更新、增加、退出功能代码
public void actionPerformed(ActionEvent evt){ JButton obj = (JButton)evt.getSource(); //得到事件源
Connection datacon = null;
PreparedStatement pstat = null;
ResultSet rs = null;
Statement stat = null;
String titleid="";
String titlename="";
String creator="";
String createtime="";
String titleclass="";
try{
datacon = MyConnection.getConnection();
//执行查询操作
if(obj.equals(UI.getBtQry())){
String strSql = "select * from FirstTile where newsId=?";
pstat = datacon.prepareStatement(strSql);
pstat.setString(1,UI.getQueryId());
rs = pstat.executeQuery(); //执行查询
//取出当前记录的各字段里的值
if(rs.next()){
titleid = rs.getString("newsId");
titlename = rs.getString("TitleName");
titleclass = rs.getString("NewsClass");
creator = rs.getString("Creator");
createtime =
rs.getString("CreateTime");
UI.setInformation(titleid,titlename,creator,title class,createtime);
}else{
JOptionPane.showMessageDialog(null,"没有匹配的新闻!","ok",JOptionPane.PLAIN_MESSAGE);
}
}
//执行新增操作
if(obj.equals(UI.getBtAdd())){
String strSql = "insert into FirstTile values(?,?,?,?,?)";
pstat = datacon.prepareStatement(strSql);
pstat.setString(1,UI.getNewsId());
pstat.setString(2,UI.getName());
pstat.setString(3,UI.getTitleClass());
pstat.setString(4,UI.getCreator());
pstat.setString(5,UI.getCreateTime());
pstat.executeUpdate();
UI.clear();
JOptionPane.showMessageDialog(null,"添加成功!","ok",JOptionPane.PLAIN_MESSAGE);
}
//执行删除操作
if(obj.equals(UI.getBtDel())){
String strSql = "delete from FirstTile where newsId=?";
pstat = datacon.prepareStatement(strSql);
pstat.setString(1,UI.getQueryId());
pstat.executeUpdate();
UI.clear();
JOptionPane.showMessageDialog(null,"删除成功!","ok",JOptionPane.PLAIN_MESSAGE);
}
//执行修改操作
if(obj.equals(UI.getBtUpdate())){
String strSql = "Update FirstTile set TitleName=?,Creator=?,NewsClass=?,CreateTime=? where
newsId=?"
;
pstat = datacon.prepareStatement(strSql);
pstat.setString(1,UI.getName());
pstat.setString(2,UI.getCreator());
pstat.setString(3,UI.getTitleClass());
pstat.setString(4,UI.getCreateTime());
pstat.setString(5,UI.getQueryId());
pstat.executeUpdate();
UI.clear();
JOptionPane.showMessageDialog(null,"修改成功!","ok",JOptionPane.PLAIN_MESSAGE);
}
//退出系统操作
if(obj.equals(UI.getBtExit())){
System.exit(0);
}
}
catch(Exception e){
e.printStackTrace();
}
finally{
MyConnection.closePreparedStatement(pstat);
MyConnection.closeResult(rs);
MyConnection.closeConnection(datacon);
}
}
6 系统界面
(1)系统主界面
(2)登录界面(Login.java)
(3)新闻一级标题操作界面(FirstTitleUI.java)
.。