Java面向对象实训文档.docx
《Java面向对象实训文档.docx》由会员分享,可在线阅读,更多相关《Java面向对象实训文档.docx(12页珍藏版)》请在冰豆网上搜索。
Java面向对象实训文档
姓名
Name
学号
StudentNo.
班级
Class
代码总行数
CodeLines
500+行
项目名称
Item
Record_messageJavaGUIDevlopment
1.实验目的
本次课程设计旨在通过一个完整项目的开发,巩固面向对象程序设计、软件工程、数据库技术等课程的相关知识,加深学生对Java语言的理解,尤其是对面向对象思想、Java编码规范、JDBC访问数据库的理解,使学生进一步掌握环境构建、代码编写、文档阅读与理解、文档编写、软件测试、发行与部署等技能,进一步提高学生的学习能力、理解能力、表达能力及沟通能力。
2.实验内容
●管理员输入用户名和密码实现登陆功能,如果密码错误弹出对话框提示密码或者账户有错误.
●管理登陆成功后,Java文件将record_message表中的内容全部查询出来.
●全部数据之后,GUI界面有三个按钮,分别实现删除,添加,修改和退出按钮.
●管理员点击删除按钮后,弹出GUI用户界面,删除Admin所要删除的报告内容,如果用户删除成功,弹出GUI提示框,如果删除不成功,GUI同时也显示提示框.
●Admin点击添加按钮,输入要添加的内容,点击确定之后,会弹出对话框提示,如果添加成功GUI界面显示提示框,如果添加不成功GUI同时也显示提示界面,在以一次输入内容.
●Admin点击修改按钮,输入要修改的内容,点击确定之后,会弹出对话框提示,如果修改成功GUI界面显示提示框,如果修改不成功GUI同时也显示提示界面,在以一次输入内容.
●Admin点击退出按钮,系统会全部关闭所有的对话框且结束程序使用.
3.类图
3.1本类图主要表示的是用户登录且把数据全部查出功能
图3-1登录类图
3.2主要表示此程序所完成的功能
图3-2程序主要功能
4.运行界面
4.1程序登录功能
图4-1登录主界面
4.2数据显示功能界面
图4-2显示DB全部内容界面
4.3修改界面
图4-3修改数据界面
4.4删除信息界面
图4-4删除报告界面
4.5添加主界面
图4-5添加报告界面
5.关键代码(要求在类的定义以及方法定义的前面给出相关描述信息)
5.1代码的主要功能是加载数据库所需要的链接驱动串
publicclassDBconn{
privatefinalstaticStringDRIVER="com.mysql.jdbc.Driver";
privatefinalstaticStringURL="jdbc:
mysql:
//localhost:
3306/record";
privatefinalstaticStringUSER="root";
privatefinalstaticStringPASS="";
privateConnectionconn=null;
privateStatementst=null;
privateResultSetrs=null;
privatePreparedStatementpre=null;//预处理声明
Listlist=null;
static{
try{
Class.forName(DRIVER);
}catch(ClassNotFoundExceptione){
System.out.println(e);
}
}
publicConnectiongetConnection(){
if(conn==null){
try{
conn=DriverManager.getConnection(URL,USER,PASS);
}catch(SQLExceptione){
System.out.println(e);
}
}
returnconn;
}
5.2查询所有数据主要代码
publicclassRecordDao{//次代码块的主要作用是完成对record_message表中数据的查询功能
@SuppressWarnings("unused")
privateDBconndbConnection;
privateRecordnewRecord=null;
publicListqueryAllRecord(){
Stringsql="select*fromrecord_message";
dbConnection=newDBconn();//为数据库连接创建内存分配,然后在调用queryBySQL调用
ResultSetrs=dbConnection.queryBySQL(sql);
Listlist=newArrayList();
RecordnewRecord=null;
try{
while(rs.next()){
newRecord=newRecord();
newRecord.setId(rs.getInt
(1));
newRecord.setName(rs.getString
(2));
newRecord.setTitle(rs.getString(3));
newRecord.setTime(rs.getString(4));
newRecord.setPlace(rs.getString(5));
list.add(newRecord);
}
dbConnection.closeUpate();
rs.close();
}catch(SQLExceptione){
e.printStackTrace();
}
returnlist;
}
}
5.3词代码块的主要功能是添加数据
publicclassInsertInforDao{
Listlist=null;
privateRecordrecord;
publicStringInsert(Recordrecord){
DBconndbConnection=newDBconn();
Stringsql="insertintorecord_message(name,title,time,place)value('"+record.getName()+"','"+record.getTitle()+"','"+record.getTime()+"','"+record.getPlace()+"')";
intcount=dbConnection.updateBySQL(sql);
if(count>0){
return"success";
}
returnsql;
}
}
5.4本代码的主要功能是删除功能
publicclassdeleteDao{
Listlist=null;
Recordrecord=newRecord();
publicStringdeleteSQL(Recordrecord){
DBconndbConnection=newDBconn();
intid=record.getId();
Stringsql="deletefromrecord_messagewhereid=?
";
Stringin=dbConnection.updateBYSQLa(sql,newObject[]{id});
if(in.equals("true")){
dbConnection.closeUpdate();
return"true";
}
return"false";
}
}
5.5此代码段主要表示更新功能
publicclassUpdateDao{
Listlist=null;
publicStringupdateSQL(Recordrecord){
DBconndbConnection=newDBconn();
intid=record.getId();
Stringname=record.getName();
Stringtitle=record.getTitle();
Stringtime=record.getTime();
Stringplace=record.getPlace();
Stringsql="updaterecord_messagesetname=?
title=?
time=?
place=?
whereid=?
";
Stringdb=dbConnection.updateBYSQLang(sql,newObject[]{name,title,time,place,id});
if(db.equals("true")){
dbConnection.closeUpdate();
return"true";
}
return"false";
}
}
5.6此代码主要表示登陆功能
publicclassUserDao{
privateDBconndbConnection;
privateUsernewUser;//属性加
publicbooleanfindUserByNameAndPwd(Useruser){//此代码块的主要作用是完成登录判断功能
dbConnection=newDBconn();
Stringsql="select*fromt_userwhereusername='"
+user.getUsername()+"'";
ResultSetrs=dbConnection.executeQuery(sql);
try{
if(rs.next()){
Stringusername=rs.getString
(1);
Stringpassword=rs.getString
(2);
newUser=newUser();
newUser.setUsername(username);
newUser.setPassword(password);
dbConnection.closeUpate();
returntrue;
}else{
returnfalse;
}
}catch(SQLExceptione){
e.printStackTrace();
returnfalse;
}
}
}
5.7此代码块主要表示删除事件的功能
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==button4){
intid=Integer.parseInt(textField.getText());
Recordrecord=newRecord();
record.setId(id);
deleteDaodelete=newdeleteDao();
Stringflag=delete.deleteSQL(record);
if(flag.equals("true")){
this.setVisible(false);
setVisible(true);
JOptionPane.showMessageDialog(null,"删除成功","提示",JOptionPane.WARNING_MESSAGE);
}else{
textField.setText("");
JOptionPane.showMessageDialog(null,"删除失败,请重新输入","提示",JOptionPane.WARNING_MESSAGE);
}
}else{
textField.setText("");
}
}
5.8表示删除/添加/修改/更新事件按钮判读代码
publicvoidactionPerformed(ActionEvente){
Objecto=e.getSource();
if(o==button){//退书按钮
System.exit(0);
}elseif(o==button_1){
newinsertInfor().setVisible(true);//添加按钮
}elseif(o==button_2){//删除按钮
newdeleteFrame().setVisible(true);
}elseif(o==btnNewButton){//修改按钮
newupdateFrame().setVisible(true);
}
}
5.9此程序主要表示更新功能
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==button){
System.out.println("启动监听");
Recordrecord=newRecord();
record.setId(Integer.valueOf(textField_4.getText()));
record.setName(textField.getText());
record.setTitle(textField_1.getText());
record.setTime(textField_2.getText());
record.setPlace(textField_3.getText());
UpdateDaoupdate=newUpdateDao();
Stringflag=update.updateSQL(record);
if(flag.equals("true")){
this.setVisible(false);
setVisible(true);
JOptionPane.showMessageDialog(null,"修改成功","提示",JOptionPane.WARNING_MESSAGE);
}
else{
JOptionPane.showMessageDialog(null,"修改失败","提示",JOptionPane.WARNING_MESSAGE);
}
}
}
6.上机调试及问题分析
7.心得体会及建议
2014/1/16
成绩
Score
教师签字日期