新闻管理系统文档.docx
《新闻管理系统文档.docx》由会员分享,可在线阅读,更多相关《新闻管理系统文档.docx(13页珍藏版)》请在冰豆网上搜索。
新闻管理系统文档
新闻管理系统文档
1需求描述
该系统要求实现合法用户对新闻一级标题信息的查询、删除、增加、修改功能。
并在操作过程中通过弹出对话框给予一定的提示。
2系统功能描述
2.1系统功能图
系统功能图如图1所示。
图1系统功能图
2.2系统主流程图
系统主流程图如图2所示。
图2系统主流程图
3数据库设计
本系统选择Access数据库,建立名为NewsMis.mdb的数据库,涉及到的数据库表设计如表1-表2所示。
表1UserInfo
字段名
字段类型
可否为空
说明
UserId
文本(20)
Notnull
主键
UserPass
文本(12)
Notnull
表1FirstTitle
字段名
字段类型
可否为空
说明
NewsId
文本(6)
Notnull
主键
TitleName
文本(30)
null
标题名称
NewsClass
文本(20)
null
新闻类别
Creator
文本(12)
null
创建者
CreateTime
文本(50)
null
创建时间
4类设计
本系统设计了News、Login、FirstTitleUI、MyConnection、Listener五个类,具体说明及类图如下:
(1)MyConnection类,实现与数据库的连接、数据访问操作操作。
MyConnection
+getConnection():
Connection
+closeConnection(dbConnection:
Connection):
void
+closePreparedStatement(pstat:
PreparedStatment):
void
+closeResult(rs:
Result):
void
(2)News类,实现新闻管理系统主页面。
JFrame
……
News
-pan:
JPanel
-lb:
JLabel
-bar:
JMenuBar
-file:
JMenu
-help:
JMenu
-file_login:
JMenuItem
-file_exit:
JMenuItem
……
(3)Login类,实现用户登录功能
JFrame
……
Login
-pan:
JPanel
-lbId:
JLabel
-lbPassword:
JLabel
-btLogin:
JButton
-btCancel:
JButton
-txtId:
JTextField
-txtPass:
JPasswordField
-bar:
JMenuBar
-gbl:
JGridBagLayout
-gbc:
JGridBagConstraints
+createPanel():
void
(4)FirstTitleUI类,实现新闻管理系统信息操作主页面
JFrame
……
FirstTitleUI
-panQry:
JPanel
-panInfo:
Jpanel
-panOperator:
JPanel
-lbIdQry:
JLabel
-txtIdQry:
JTextFiled
-lbNewsId:
JLabel
-lbTitleName:
JLabel
-lbCreator:
JLabel
-lbTitleClass:
Jlabel
-btAdd:
JButton
-btDel:
JButton
-btUpdate:
JButton
-btQry:
JButton
-btExit:
JButton
-txtNewsId:
JTextField
-txtTitleName:
JTextField
-txtCreator:
JTextField
-txtCreateTime:
JTextField
-ComboTitleClass:
JComboBox
-gbl:
JGridBagLayout
-gbc:
JGridBagConstraints
+createQueryUI():
void
+createInfoUI():
void
+createOperatorUI():
void
+getQueryId():
String
+getNewsId():
String
+getTitleName():
String
+getCreator():
String
+getTitleClass():
String
+getCreateTime():
String
+getBtDel():
JButton
+getBtAdd():
JButton
+getBtUpdate():
JButton
+getBtExit():
JButton
+getBtQry()JButton
+setInformation(newsid:
String,titlename:
String,creator:
String,titleclass:
String,createtime:
String):
void
(5)Listener类,实现查询、删除、新增、更改、退出系统的操作
ActionListener<>
+actionPerformed(evt:
ActionEvent)
Listener
-UI:
FirstTitleUI
……
5关键代码
(1)登录代码
……
publicvoidactionPerformed(ActionEventevt){
if(evt.getSource().equals(btLogin)){
Connectiondatacon=null;
PreparedStatementpstat=null;
ResultSetrs=null;
try{
datacon=MyConnection.getConnection();
Stringstr="select*fromUserInfowhereUserId=?
andUserPass=?
";
pstat=datacon.prepareStatement(str);
pstat.setString(1,txtId.getText());
pstat.setString(2,txtPass.getText());
rs=pstat.executeQuery();
if(rs.next()){
txtId.setText("");
txtPass.setText("");
newFirstTitleUI().setVisible(true);
}
else
{
JOptionPane.showMessageDialog(null,"用户名或密码有错误!
","Sorry",JOptionPane.PLAIN_MESSAGE);
txtId.setText("");
txtPass.setText("");
}
}
catch(Exceptione){
e.printStackTrace();
}
finally{
MyConnection.closePreparedStatement(pstat);
MyConnection.closeResult(rs);
MyConnection.closeConnection(datacon);
}
}
}
……
(2)查询、删除、更新、增加、退出功能代码
publicvoidactionPerformed(ActionEventevt){
JButtonobj=(JButton)evt.getSource();//得到事件源
Connectiondatacon=null;
PreparedStatementpstat=null;
ResultSetrs=null;
Statementstat=null;
Stringtitleid="";
Stringtitlename="";
Stringcreator="";
Stringcreatetime="";
Stringtitleclass="";
try{
datacon=MyConnection.getConnection();
//执行查询操作
if(obj.equals(UI.getBtQry())){
StringstrSql="select*fromFirstTilewherenewsId=?
";
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,titleclass,createtime);
}else{
JOptionPane.showMessageDialog(null,"没有匹配的新闻!
","ok",JOptionPane.PLAIN_MESSAGE);
}
}
//执行新增操作
if(obj.equals(UI.getBtAdd())){
StringstrSql="insertintoFirstTilevalues(?
?
?
?
?
)";
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())){
StringstrSql="deletefromFirstTilewherenewsId=?
";
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())){
StringstrSql="UpdateFirstTilesetTitleName=?
Creator=?
NewsClass=?
CreateTime=?
wherenewsId=?
";
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(Exceptione){
e.printStackTrace();
}
finally{
MyConnection.closePreparedStatement(pstat);
MyConnection.closeResult(rs);
MyConnection.closeConnection(datacon);
}
}
6系统界面
(1)系统主界面
(2)登录界面(Login.java)
(3)新闻一级标题操作界面(FirstTitleUI.java)