数据库课程设计实验报告Word文档格式.docx

上传人:b****5 文档编号:21407823 上传时间:2023-01-30 格式:DOCX 页数:29 大小:846.98KB
下载 相关 举报
数据库课程设计实验报告Word文档格式.docx_第1页
第1页 / 共29页
数据库课程设计实验报告Word文档格式.docx_第2页
第2页 / 共29页
数据库课程设计实验报告Word文档格式.docx_第3页
第3页 / 共29页
数据库课程设计实验报告Word文档格式.docx_第4页
第4页 / 共29页
数据库课程设计实验报告Word文档格式.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

数据库课程设计实验报告Word文档格式.docx

《数据库课程设计实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据库课程设计实验报告Word文档格式.docx(29页珍藏版)》请在冰豆网上搜索。

数据库课程设计实验报告Word文档格式.docx

(1)企业注册与登陆

(2)发布招聘信息。

(3)查看求职信息、发布录用信息

系统管理员的主要功能模块包括:

(1)求职者信息管理

(2)企业信息管理

2.2数据流图

[1]顶层数据流图

[2]第二层数据流图

2.3E-R图

2.3.1普通用户(求职者)实体图

2.3.2职位实体图

2.3.3企业实体图

2.3.4系统ER图

第三章:

数据库设计

[1]PDM模型

[2]数据库表结构设计

(1)普通用户表

(2)账户信息表

(3)管理用户表

(4)企业用户表

(5)企业信息表

(6)职位信息表

(7)职位申请表

(8)招聘广告表

(9)投诉信息表

(10)新闻发布信息表

(11)管理日志表

第四章:

数据库测试

4.1通过JDBC连接 SQLSERVER,测试数据库是否连接成功

packagepkg;

importjava.sql.*;

publicclassMain{

publicstaticvoidmain(String[]args)

{

StringdriverName="

com.microsoft.sqlserver.jdbc.SQLServerDriver"

;

StringdbURL="

jdbc:

sqlserver:

//localhost:

1433;

DatabaseName=ASD"

StringuserName="

sa"

StringuserPwd="

123456"

Stringsql="

SELECT*FROM[ASD].[dbo].[ADMIN_INFO]"

Stringsql1="

SELECT*FROM[ASD].[dbo].[ID_INFO]"

PreparedStatementpre;

ResultSetrs;

try

Class.forName(driverName);

ConnectiondbConn=DriverManager.getConnection(dbURL,userName,userPwd);

System.out.println("

连接数据库成功"

);

pre=dbConn.prepareStatement(sql);

rs=pre.executeQuery();

管理用户表"

System.out.print("

账户编号"

+"

\t"

管理权限"

姓名"

性别"

电话"

while(rs.next()){

System.out.print(rs.getString

(1)+"

System.out.print(rs.getString

(2)+"

System.out.print(rs.getString(3)+"

System.out.print(rs.getString(4)+"

System.out.println(rs.getString(5));

}

pre=dbConn.prepareStatement(sql1);

\n"

全体用户表"

昵称"

密码"

用户类型"

邮箱"

catch(Exceptione)

e.printStackTrace();

连接失败"

4.2界面设计及数据库测试

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjavax.swing.*;

publicclassExample2extendsJFrameimplementsActionListener{

/**

*

*/

privatestaticfinallongserialVersionUID=1L;

JButtonadd,select,del,update;

JTabletable;

Objectbody[][]=newObject[50][5];

Stringtitle[]={"

账号编号"

"

};

Connectionconn;

Statementstat;

JTabbedPanetp;

publicExample2(){

super("

数据库操作"

this.setSize(700,600);

this.setLocation(200,100);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanelps=newJPanel();

add=newJButton("

添加"

select=newJButton("

显示"

update=newJButton("

更改"

del=newJButton("

删除"

add.addActionListener(this);

select.addActionListener(this);

update.addActionListener(this);

del.addActionListener(this);

ps.add(add);

ps.add(select);

ps.add(update);

ps.add(del);

table=newJTable(body,title);

tp=newJTabbedPane();

tp.add("

ADMIN_INFO表"

newJScrollPane(table));

this.getContentPane().add(tp,"

Center"

this.getContentPane().add(ps,"

South"

this.setVisible(true);

this.connection();

publicvoidconnection(){

StringdriverName="

StringdbURL="

StringuserName="

StringuserPwd="

try{

Class.forName(driverName);

}

catch(ClassNotFoundExceptione)

{

System.out.println("

"

+e);

try{

conn=DriverManager.getConnection(dbURL,userName,userPwd);

stat=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

}

catch(SQLExceptione)

System.out.println(e);

publicstaticvoidmain(String[]args){

newExample2();

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==add)

{add();

}

if(e.getSource()==select)

{select();

if(e.getSource()==update)

{update();

if(e.getSource()==del)

{del();

publicvoiddel(){

try{

introw=table.getSelectedRow();

stat.executeUpdate("

deletefromADMIN_INFOwhereID='

+body[row][0]+"

'

JOptionPane.showMessageDialog(null,"

数据已成功删除"

this.select();

}catch(SQLExceptione){

System.out.println(e);

publicvoidupdate(){

JTextFieldt[]=newJTextField[6];

t[0]=newJTextField("

输入姓名:

t[0].setEditable(false);

t[1]=newJTextField();

t[2]=newJTextField("

输入性别:

t[2].setEditable(false);

t[3]=newJTextField();

t[4]=newJTextField("

输入电话:

t[4].setEditable(false);

t[5]=newJTextField();

Stringbut[]={"

确定"

取消"

intgo=JOptionPane.showOptionDialog(null,t,"

修改信息"

JOptionPane.YES_OPTION,JOptionPane.INFORMATION_MESSAGE,null,but,but[0]);

if(go==0){

try{

StringNAME=t[1].getText();

StringSEX=t[3].getText();

StringPHONE=t[5].getText();

updateADMIN_INFOsetName='

+NAME+"

Sex='

+SEX+"

Phone='

+PHONE+"

whereID='

修改数据成功"

}catch(Exceptionee)

修改数据错误!

catch(Exceptione){

publicvoidselect(){

for(intx=0;

x<

50;

x++)

body[x][0]=null;

body[x][1]=null;

body[x][2]=null;

body[x][3]=null;

body[x][4]=null;

inti=0;

rs=stat.executeQuery("

select*fromADMIN_INFO"

while(rs.next()){

body[i][0]=rs.getString

(1);

body[i][1]=rs.getString

(2);

body[i][2]=rs.getString(3);

body[i][3]=rs.getString(4);

body[i][4]=rs.getString(5);

i=i+1;

this.repaint();

catch(SQLExceptione)

privatevoidadd(){

table.getSelectedRow();

JTextFieldt[]=newJTextField[9];

输入编号:

输入管理权限:

t[6]=newJTextField("

t[6].setEditable(false);

t[7]=newJTextField();

t[8]=newJTextField("

输入联系电话:

t[8].setEditable(false);

t[9]=newJTextField();

Stringbut[]={"

插入信息"

try{

StringID=t[1].getText();

StringPOWER=t[3].getText();

StringName=t[5].getText();

StringSex=t[7].getText();

StringPhone=t[9].getText();

insertintoADMIN_INFOvalues('

+ID+"

'

+POWER+"

+Name+"

+Sex+"

+Phone+"

)"

数据已成功插入!

}catch(Exceptionee){

插入数据错误!

}catch(Exceptione){

4.3结构化查询语句测试

[1]建立视图(企业视图)

createVIEW企业信息

as

selectCO_INFO.CO_ID企业编号,CO_INFO.CO_Name企业名称,CO_INFO.CO_Address企业地址,CO_INFO.CO_Phone企业电话,CO_INFO.CO_Profile企业简介fromCO_INFO

[2]存储过程建立(计算各人年龄并插入表中)

createprocedureAGE_UPDATE

updateNORMAL_INFO

setAge=year(getdate())-year(Birth)

whereIDin(selectIDfromNORMAL_INFO)

go

ExecuteAGE_UPDATE;

存储过程建立前:

存储过程建立后:

[3]触发器建立(防止误删建有外键的数据)

createtriggerADMIN_INFO_deleteonADMIN_INFO

fordeleteas

declare@nint

select@n=COUNT(*)fromdeleted,ID_INFOwheredeleted.ID=ID_INFO.ID

if@n>

=1

begin

raiserror('

该用户在ADMIN_INFO被引用,暂时不能删除'

16,1)

rollbacktransaction

end

测试代码:

deletefromADMIN_INFO

00000001'

触发结果:

第五章:

课设心得体会

学会如何独立完成对一个数据库系统的分析,分析各实体间关系及属性设计ER图,同时通过对项目业务流程分析,知道如何设计数据流图,最终得出PDM模型;

在建立PDM模型中,了解各数据类型的区别(如varchar和navarchar),同时实践出如何选择正确的数据类型;

在外键和主键的设置上也有切身的体会和了解;

在数据库设计方面,了解数据的冗余性,耦合性等;

同时也温习了遍数据库查询语句的用法,能更好建立触发器以及存储过程

这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,给以后的学习以及工作中积累经验教训。

附录:

数据库建立语句

/*==============================================================*/

/*DBMSname:

MicrosoftSQLServer2008*/

/*Createdon:

2014-06-2221:

51:

33*/

ifexists(select1

fromsys.sysreferencesrjoinsys.sysobjectsoon(o.id=r.constidando.type='

F'

wherer.fkeyid=object_id('

ADMIN_INFO'

)ando.name='

FK_ADMIN_IN_REFERENCE_ID_INFO'

altertableADMIN_INFO

dropconstraintFK_ADMIN_IN_REFERENCE_ID_INFO

AD_INFO'

FK_AD_INFO_REFERENCE_CO_MAN_I'

altertableAD_INFO

dropconstraintFK_AD_INFO_REFERENCE_CO_MAN_I

fromsys.sysreferencesrjoi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1