重庆交通大学数据库结业报告.docx
- 文档编号:3506930
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:21
- 大小:300.91KB
重庆交通大学数据库结业报告.docx
《重庆交通大学数据库结业报告.docx》由会员分享,可在线阅读,更多相关《重庆交通大学数据库结业报告.docx(21页珍藏版)》请在冰豆网上搜索。
重庆交通大学数据库结业报告
重庆交通大学信息科学与工程学院
综合性设计性实验报告
班级:
物联网15xx班
姓名学号:
gllh
实验项目名称:
银行数据库管理系统
实验项目性质:
综合性
实验所属课程:
《数据库技术》
实验室(中心):
语音楼801信息实验室
指导教师:
xx
实验完成时间:
20xx年xx月xx日
一、实验题目
银行数据库管理系统
二、实验要求
选取现实生活中需要使用数据库管理数据的应用场合,对具体需求进行分析,运用数据库设计理论,设计行之有效的数据库模式,并选用具体的DBMS进行实现。
运用高级语言工具开发针对该数据库的简单应用系统,完成数据操作。
三、需求分析
本设计中银行数据库管理系统的设计用来管理银行中日常的运行和流程中主要涉及6个实体分别为银行,银行员工,客户,银行产品,存取款流水单,借贷流水单。
(1).数据库系统所能实现的功能
本数据库可实现对银行信息、客户信息、银行员工信息、银行产品信息、客户借贷款信息、客户存取款信息的输入、记录、管理、查看、修改、删除等功能。
3.数据库设计及数据库系统实现的工具
数据库设计具体如下:
表1银行信息属性表
表2员工信息属性表
表3客户信息属性表
表4银行产品信息表
表5贷款信息属性表
表6借贷款信息属性表
(2).实现本数据库所用的工具:
EclipseKEPLER、PowerDesigner16、SQLSERVER2012、ODBC、jre1.6等
四、概念模型
图1:
cdm图
(1).通过PowerDesigner绘制相关的概念模型图,并说明本数据库系统中用到的所有抽象实体和关系的定义。
实体有:
银行,银行员工,客户,银行产品,存取款流水单,借贷流水单,其中关系1:
银行—客户关系为多对多,一个银行有多个客户,一个客户可以办理多银行业务;关系2:
银行—银行员工关系为一对多,一个银行有多个员工,一个员工只对应一个银行;关系3:
银行—银行产品为一对多关系,一个银行有多个产品,一个产品只对应一个银行;关系4:
客户—银行产品是多对多,一个客户可办理多个产品,一个银行产品可以被很多用户办理;关系5:
客户—存款单关系为一对多,一个客户可以有多个存款单,一张存款单只对应一个客户;关系6:
客户—借贷单关系为一对多,一个客户可以有多个借贷单,一张借贷单只对应一个客户;
五、物理模型
图2:
pdm图
六、数据库实现
(1).选用具体的DBMS,实现设计的物理模型。
本设计选用SQLSERVER2012,通过PowerDesigner导入数据库后为:
图3:
数据库表结构
七、数据库系统实现
用EclipseKepler软件Java语言制作简单数据库应用程序。
(1).构造一个银行信息类
packageedu.text;
publicclassBankinfo{
privateStringBname;
privateStringBno;
privateStringBcity;
privateStringBarea;
privateintBcount;
privateintBstaffcount;
privateintBmoney;
privateintBgold;
publicStringgetBname(){
returnBname;
}
publicvoidsetBname(Stringbname){
Bname=bname;
}
publicStringgetBno(){
returnBno;
}
publicvoidsetBno(Stringbno){
Bno=bno;
}
publicStringgetBcity(){
returnBcity;
}
publicvoidsetBcity(Stringbcity){
Bcity=bcity;
}
publicStringgetBarea(){
returnBarea;
}
publicvoidsetBarea(Stringbarea){
Barea=barea;
}
publicintgetBcount(){
returnBcount;
}
publicvoidsetBcount(intbcount){
Bcount=bcount;
}
publicintgetBstaffcount(){
returnBstaffcount;
}
publicvoidsetBstaffcount(intbstaffcount){
Bstaffcount=bstaffcount;
}
publicintgetBmoney(){
returnBmoney;
}
publicvoidsetBmoney(intbmoney){
Bmoney=bmoney;
}
publicintgetBgold(){
returnBgold;
}
publicvoidsetBgold(intbgold){
Bgold=bgold;
}
publicStringprint(){
StringBankinfo="\t"+this.Bname+"\t"+this.Bno+"\t"+this.Bcity+"\t"+this.Barea
+"\t"+this.Bcount+"\t"+this.Bstaffcount+"\t"+this.Bmoney+
"\t"+this.Bgold;
returnBankinfo;
}
}
(2).在对银行信息表进行操作的Dboperate.java代码如下:
packageedu.text;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.util.ArrayList;
importjava.util.List;
importedu.text.Bankinfo;
publicclassDboperate{/*
*数据库的连接
*/
publicConnectiongetConn(){
StringdriverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
StringdbURL="jdbc:
sqlserver:
//localhost:
1433;DatabaseName=BANK";
StringuserName="sa";
StringuserPwd="631507030101";
Connectionconn=null;
try{
Class.forName(driverName);
conn=(Connection)DriverManager.getConnection(dbURL,userName,
userPwd);//获取连接
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}catch(SQLExceptione){
e.printStackTrace();
}//指定连接类型
returnconn;
}
/*
*数据库的关闭
*/
/*
*数据库插入记录
*/
publicintinsert(Bankinfoban){
Connectionconn=getConn();
inti=0;
Stringsql="insertintoBankinfo(Bname,Bno,Bcity,Barea,Bcount,Bstaffcount,Bmoney,Bgold)values(?
?
?
?
?
?
?
?
)";
PreparedStatementpst;
try{
pst=conn.prepareStatement(sql);
pst.setString(1,ban.getBname());
pst.setString(2,ban.getBno());
pst.setString(3,ban.getBcity());
pst.setString(4,ban.getBarea());
pst.setInt(5,ban.getBcount());
pst.setInt(6,ban.getBstaffcount());
pst.setInt(7,ban.getBmoney());
pst.setInt(8,ban.getBgold());
i=pst.executeUpdate();
pst.close();
conn.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
returni;
}
/*
*数据库得到所有记录
*/
publicList
Connectionconn=getConn();
Stringsql="select*fromBankinfo";
PreparedStatementpst;
List
try{
pst=(PreparedStatement)conn.prepareStatement(sql);
ResultSetresult=pst.executeQuery();
while(result.next()){
Bankinfoban=newBankinfo();
Stringbname=result.getString
(1);
ban.setBname(bname);
Stringbno=result.getString
(2);
ban.setBno(bno);
Stringbcity=result.getString(3);
ban.setBcity(bcity);
Stringbarea=result.getString(4);
ban.setBarea(barea);
intbcount=result.getInt(5);
ban.setBcount(bcount);
intbstaffcount=result.getInt(6);
ban.setBstaffcount(bstaffcount);
intbmoney=result.getInt(7);
ban.setBmoney(bmoney);
intbgold=result.getInt(8);
ban.setBgold(bgold);
bankinfos.add(ban);
}
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
returnbankinfos;
}
/*
*删除记录
*/
publicintdelete(intBno){
Connectionconn=getConn();
inti=0;
Stringsql="deletefromBankinfowhereBno="+Bno;
PreparedStatementpst;
try{
pst=conn.prepareStatement(sql);
i=pst.executeUpdate();
pst.close();
conn.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
returni;
}
/*
*更新数据库记录
*/
publicvoidupdate(intBno,Bankinfoban){
Connectionconn=getConn();
inti;
Stringsql="updateBankinfosetBname='"+ban.getBname()+"',Bno="+ban.getBno()
+",Bcity="+ban.getBcity()
+",Barea="+ban.getBarea()
+",Bcount="+ban.getBcount()
+",Bstaffcount="+ban.getBstaffcount()
+",Bmoney="+ban.getBmoney()
+",Bgold="+ban.getBgold()
+"whereBno="+Bno;
PreparedStatementpst;
try{
pst=conn.prepareStatement(sql);
i=pst.executeUpdate();
pst.close();
conn.close();
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
/*
*数据库的查询
*/
publicList
List
Connectionconn=getConn();
Stringsql="select*fromBankinfowhereBnamelike'%"+key+"%'orBnolike'%"+key+"%'";
PreparedStatementpst;
try{
pst=(PreparedStatement)conn.prepareStatement(sql);
ResultSetresult=pst.executeQuery();
while(result.next()){
Bankinfoban=newBankinfo();
Stringbname=result.getString
(1);
ban.setBname(bname);
Stringbno=result.getString
(2);
ban.setBno(bno);
Stringbcity=result.getString(3);
ban.setBcity(bcity);
Stringbarea=result.getString(4);
ban.setBarea(barea);
intbcount=result.getInt(5);
ban.setBcount(bcount);
intbstaffcount=result.getInt(6);
ban.setBstaffcount(bstaffcount);
intbmoney=result.getInt(7);
ban.setBmoney(bmoney);
intbgold=result.getInt(8);
ban.setBgold(bgold);
bankinfos.add(ban);
}
}catch(SQLExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
returnbankinfos;
}
}
(3).对数据库操作接口Option.java
packageedu.text;
importjava.util.List;
importedu.text.Bankinfo;
/*
*系统的操作类
*/
publicinterfaceOption{
/*
*添加银行信息
*/
publicabstractvoidaddStudent(Stringname,Stringname2,Stringname3,Stringname4,intkk1,intkk2,intkk3,intkk4);
/*
*显示所有的银行信息
*/
publicabstractvoidshowAll();
/*
*显示银行信息
*/
publicabstractvoidshowInfo(List
/*
*查询银行信息
*/
publicabstractvoidsearch(Stringkey);
/*
*更新银行信息
*/
publicabstractvoidupdate(intbno);
/*
*删除银行信息
*/
publicabstractvoiddelete(intbno);
}
(4).对接口的实现
packageedu.text;
importjava.util.Iterator;
importjava.util.List;
importjava.util.Scanner;
importedu.text.Bankinfo;
importedu.text.Dboperate;
publicclassOptionimpimplementsOption{
DboperatedbOperate=newDboperate();
@Override
publicvoidaddStudent(Stringbname,Stringbno,Stringbcity,Stringbarea,intbcount,intbstaffcount,intbmoney,intbgold){
Bankinfostudent=newBankinfo();
student.setBname(bname);
student.setBno(bno);
student.setBcity(bcity);
student.setBarea(barea);
student.setBcount(bcount);
student.setBstaffcount(bstaffcount);
student.setBmoney(bmoney);
student.setBgold(bgold);
dbOperate.insert(student);
this.showAll();
}
@Override
publicvoidshowInfo(List
System.out.println("\t=====================================================================");
Stringmsg="\t银行名\t银行号\t所在城市\t所属区域\t银行数量\t员工数量\t现金储备\t黄金储备";
System.out.println(msg);
Iterator
while(i.hasNext()){
Bankinfostu=i.next();
if(stu!
=null){
Stringinf="\t"+stu.getBname()+"\t"+stu.getBno()+"\t"+stu.getBcity()+"\t"+stu.getBarea()
+stu.getBcount()+"\t"+stu.getBstaffcount()+"\t"+stu.getBmoney()+
"\t"+stu.getBgold();
System.out.println(inf);
}
}
System.out.println("\t=====================================================================");
}
@Override
publicvoidupdate(intbno){
Stringid=Integer.toString(bno);
List
this.showInfo(student);
Bankinfostu=newBankinfo();
Scannerin=newScanner(System.in);
System.out.println("---更银行的名字---");
Stringbname=in.next();
stu.setBname(bname);
System.out.println("---更新银行的城市---");
Stringbcity=in.next();
stu.setBcit
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 重庆 交通大学 数据库 结业 报告