设计数据库课程设计Java实现.docx
- 文档编号:29775614
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:23
- 大小:119.70KB
设计数据库课程设计Java实现.docx
《设计数据库课程设计Java实现.docx》由会员分享,可在线阅读,更多相关《设计数据库课程设计Java实现.docx(23页珍藏版)》请在冰豆网上搜索。
设计数据库课程设计Java实现
)
一、课程设计目的
在数据库原理课程基础上,培养学生综合运用数据库知识的能力。
学会数据库的设计、规划以及应用程序的开发和调试,使学生掌握客户机/服务器体系结构,学会大型数据库的工作模式。
大型数据库管理系统存放于服务器,数据库放在服务器上,学生在客户机上开发应用程序访问服务器上的数据库,并完成应用系统所要求的各项功能,应用程序的开发需要采用当前流行的新软件。
二、课程设计内容
1.数据库的设计
根据学生信息管理系统,经过调查研究,构建合理的数据库。
首先构建基本表以及表和表之间的联系,在此基础上构建视图和索引表。
2.服务器的组织
根据建立的基本表、视图和索引表搭建服务器。
3.】
4.前端开发工具:
java学习并完成编写程序。
服务器端:
SQLServer2012
5.开发应用程序
利用所学的新软件开发工具进行应用程序的开发。
6.连接、调试。
三、软硬件环境及系统所采用的体系结构
系统的体系结构为C/S结构,具体开发工具为Ecplise,前台为Java,后台数据库一般为SQLServer2012。
【
四、需求分析
通过对学生信息管理的了解,确定本系统具备一下功能。
多用户账号登录
只要通过用户登录验证后,能对学生的记录信息进行修改,增加,删除等操作。
五、系统设计
1.系统结构图
$
【
?
a.功能模块图
》
|
*
—
2.数据库设计
学生包含的信息:
!
"
》
NM
!
(
Login表
USE[Student]
*
GO
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
~
CREATETABLE[dbo].[Login](
[userName][nvarchar](20)NOTNULL,
[password][nvarchar](10)NULL,
CONSTRAINT[PK_Login]PRIMARYKEYCLUSTERED
(
[userName]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
@
GO
StudentIfor表
USE[Student]
GO
{
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
CREATETABLE[dbo].[StudentIfor](
[code][nvarchar](10)NOTNULL,
,
[name][nvarchar](10)NOTNULL,
[sex][nchar]
(2)NOTNULL,
[room][nvarchar](10)NOTNULL,
[address][nvarchar](50)NULL,
[tel][nvarchar](11)NULL,
CONSTRAINT[PK_StudentInfor]PRIMARYKEYCLUSTERED
(
[code]ASC
:
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
GO
Crouse表
CREATETABLE[dbo].[Course](
《
[courseID][nchar](5)NOTNULL,
[courseName][nvarchar](40)NOTNULL,
CONSTRAINT[PK_Course]PRIMARYKEYCLUSTERED
(
[courseID]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
(
GO
Student_Crouse表
CREATETABLE[dbo].[Student_Course](
[code][nvarchar](10)NOTNULL,
[courseID][nchar](5)NOTNULL,
[courseGrade][float]NULL,
CONSTRAINT[PK_Student_Course]PRIMARYKEYCLUSTERED
:
(
[code]ASC,
[courseID]ASC
)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]
)ON[PRIMARY]
GO
}
六、系统的实施
系统的实现方法是用java结合SqlServer2012,用java编写前端的用户界面主要的界面代码如下:
publicclasswindowsimplementsActionListener{
privateJFrameframe;
privateJLabel[]label;
privateJTextField[]textField;
privateJListlist;
》
privateJScrollPanejscrollPane;
privateDefaultListModellistModel;
privateJRadioButtonmjRadioButton,fjRadioButton;
privateButtonGroupsetButtonGrop;
privateJButton[]button;
privateJButtonjbu;
privateContainercon;
privateResultSetresultSet;
{
privateString[]sinfor={"*学号:
","*姓名:
","*性别:
","*宿舍:
","住址:
","电话:
"};
privateString[]binfor={"增加","删除","修改","查找","上一条","下一条"};
publicwindows(){
frame=newJFrame("学生信息管理");
con=();
(null);
(350,150);
"
(7770/15,6000/15);
(false);
textField=newJTextField[6];
label=newJLabel[6];
button=newJButton[6];
for(inti=0;i<6;i++)
{
*
label[i]=newJLabel(sinfor[i]);
label[i].setLocation(5,3+(i*670/15));
label[i].setSize(570/15,670/15);
(label[i]);
if(i!
=2)
{
textField[i]=newJTextField();
)
textField[i].setSize(200,470/15);
textField[i].setLocation(770/15,5+(i*670/15));
(textField[i]);
}else
{
mjRadioButton=newJRadioButton("男",false);
(true);
(570/15,670/15);
)
(970/15,5+(2*670/15));
(this);
);
fjRadioButton=newJRadioButton("女",false);
(570/15,670/15);
(2070/15,5+(2*670/15));
);
(true);
|
(this);
setButtonGrop=newButtonGroup();
(mjRadioButton);
(fjRadioButton);
(mjRadioButton);
(fjRadioButton);
(
}
button[i]=newJButton(binfor[i]);
button[i].setSize(1570/15,370/15);
button[i].setCursor);
button[i].addActionListener(this);
if(i<=2)
button[i].setLocation(240/15+(i*2000/15),4300/15);
`
else
button[i].setLocation(240/15+((i-3)*2000/15),4300/15+450/15);
(button[i]);
}
jbu=newJButton("查看成绩");
(1570/15,800/15);
(3*2000/15,4300/15);
)
(this);
(jbu);
selectse=newselect();
resultSet=();
listModel=newDefaultListModel();
try{
while())
?
{
("code")+""+("name"));
}
}catch(SQLExceptione){
();
}
();
list=newJList(listModel);
、
(newMouseAdapter(){
publicvoidmouseClicked(MouseEvente){
if()==2&&()!
=-1)
clickTwo());
}
});
jscrollPane=newJScrollPane(list);
(200,250);
…
(270,7);
(jscrollPane);
(true);
;
}
应用程序的编制方法是用户点击给出的功能按钮实现对应的功能,按钮响应中调用相应的类及方法,重要代码如下:
>
privatevoidclickTwo(Objectvalue){
Stringstr=null;
ResultSetre;
selectse;
str=().substring(0,8);
();
se=newselect();
re=(str);
·
try{
textField[0].setText(("code"));
textField[1].setText("name"));
if("sex").equals("女")==true)
(true);
else
(true);
textField[3].setText("room"));
,
textField[4].setText("address"));
textField[5].setText("tel"));
}catch(SQLExceptione){
();
}
();
【
}
publicvoidactionPerformed(ActionEvente){
Stringcode=null,name=null,sex="",room=null,address=null,tel=null;
if()==button[0])
{
code=textField[0].getText();
name=textField[1].getText();
Enumeration
…
while()){
AbstractButtonab=();
if())
sex=();
}
room=textField[3].getText();
address=textField[4].getText();
tel=textField[5].getText();
…
();
();
();
();
();
if("")!
=true&&("")!
=true&&("")!
=true&&("")!
=true)
{if(newaddInfor(code,name,sex,address,room,tel).addToDataBase()==true)
{
}
(frame,"增加成功");
selectse=newselect();
resultSet=();
listModel=newDefaultListModel();
try{
while())
{("code")+""+("name"));
}
%
}catch(SQLExceptione1){
();
}
(listModel);
();
for(inti=0;i<6;i++)
if(i!
=2)
textField[i].setText("");
;
}
else
(frame,"增加失败,请核对信息");
}
else
(frame,"填入信息不全,请核对","警告",;
}
(
if()==mjRadioButton||()==fjRadioButton)
{
sex=();
}
if()==button[1])
{
Stringdeli=null;
>
deli=(frame,"请输入删除的学号:
");
if(deli!
=null)
{
();
if("")!
=true)
{
if(newdeleteInfor(deli).studentDel()==true)
$
{
(frame,"删除成功");
selectse=newselect();
resultSet=();
listModel=newDefaultListModel();
try{
while())
{
:
("code")+""+("name"));
}
}catch(SQLExceptione1){
();
}
(listModel);
();
}
|
else
(frame,"删除失败,请核对信息");
}
else
(frame,"学号不能为空","错误",;
}
}
if()==button[2])
~
{
code=textField[0].getText();
name=textField[1].getText();
Enumeration
while()){
AbstractButtonab=();
if())
sex=();
(
}
room=textField[3].getText();
address=textField[4].getText();
tel=textField[5].getText();
();
();
();
();
;
();
if("")!
=true&&("")!
=true&&("")!
=true&&("")!
=true)
if(newupdate(code,name,sex,room,address,tel).updateStudentIfor()==true)
{
(frame,"修改成功");
selectse=newselect();
resultSet=();
listModel=newDefaultListModel();
:
try{
while())
{
("code")+""+("name"));
}
}catch(SQLExceptione1){
();
}
,
(listModel);
();
}
else
(frame,"修改失败,请核对信息","错误",;
else
(frame,"填入信息不全,请核对","警告",;
}
【
if()==button[3])
{
ResultSets;
selectsAll;
Stringseach=null;
seach=(frame,"请输入查找的学号:
");
if(seach!
=null)
{
~
();
if("")!
=true)
{
sAll=newselect();
s=(seach);
try{
for(inti=0;i<6;i++)
{
#
if(i==2)
{
if(3).equals("男"))
(true);
else
(true);
}
else
\
textField[i].setText(i+1));
}
}catch(HeadlessExceptione1){
();
}catch(SQLExceptione1){
(frame,"查找的学生记录不存在:
");
}
();
}else
(frame,"学号不能为空","错误",;
}
}
if()==button[4])
{
JScrollBarjsscroBar;
intlis;
lis=();
if(lis==-1)
{
(0);
jsscroBar=();
(0);
}
else
{
(lis-1);
jsscroBar=();
(lis*10-1);
}
}
if()==button[5])
{
intlis;
JScrollBarjsscroBar;
lis=();
(lis+1);
jsscroBar=();
(lis*10+1);
}
if()==jbu)
{
code=textField[0].getText();
if(code!
=null)
{
();
if("")!
=true)
{
newcrouseFrame(code);
}
else
(frame,"学号不能为空");
}
}
}
七、系统评价及心得体会
1.改进方案
本次实验中,自己设计的程序功能上存在不足的地方,如查询时有限制格式,没有很好的容错性,代码健壮性不足,没有具体的应用价值。
同时代码执行的效率也是还有提高的空间的,没有很好的算法加入进去。
对于这些问题,需要以后更加深入学习java并且需要有大量的编程经验才能解决的,以后学习的东西还有能多。
体会
这次数据库的课程设计,体会最深刻的就是,我将面向对象是思想有了更深的了解,之前javaGUI程序设计没有学习,本次要求系统要有界面,用两周时间边自学边编写自己的程序。
所以这次收获之一就是java的掌握有所提高并且,在熟悉语言的同时,我也学会了如何使用java连接sqlserver2012数据库,并且掌握了这次主要联系的数据库操作,实现了连接,查询入库删除等功能,虽然还有待提高,但是本次课程设计让我了解了不少,也学习了不少。
我感
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 数据库 课程设计 Java 实现