重庆交通大学数据库结业报告Word下载.docx
《重庆交通大学数据库结业报告Word下载.docx》由会员分享,可在线阅读,更多相关《重庆交通大学数据库结业报告Word下载.docx(21页珍藏版)》请在冰豆网上搜索。
表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+"
+this.Bno+"
+this.Bcity+"
+this.Barea
+"
+this.Bcount+"
+this.Bstaffcount+"
+this.Bmoney+
"
+this.Bgold;
returnBankinfo;
}
(2).在对银行信息表进行操作的Dboperate.java代码如下:
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){
}//指定连接类型
returnconn;
/*
*数据库的关闭
*数据库插入记录
publicintinsert(Bankinfoban){
Connectionconn=getConn();
inti=0;
Stringsql="
insertintoBankinfo(Bname,Bno,Bcity,Barea,Bcount,Bstaffcount,Bmoney,Bgold)values(?
?
)"
PreparedStatementpst;
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();
//TODOAuto-generatedcatchblock
returni;
*数据库得到所有记录
publicList<
Bankinfo>
getAllData(){
Connectionconn=getConn();
Stringsql="
select*fromBankinfo"
List<
bankinfos=newArrayList<
();
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);
}
returnbankinfos;
*删除记录
publicintdelete(intBno){
inti=0;
deletefromBankinfowhereBno="
+Bno;
pst=conn.prepareStatement(sql);
i=pst.executeUpdate();
*更新数据库记录
publicvoidupdate(intBno,Bankinfoban){
inti;
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="
*数据库的查询
search(Stringkey){
select*fromBankinfowhereBnamelike'
%"
+key+"
%'
orBnolike'
}
}
(3).对数据库操作接口Option.java
*系统的操作类
publicinterfaceOption{
*添加银行信息
publicabstractvoidaddStudent(Stringname,Stringname2,Stringname3,Stringname4,intkk1,intkk2,intkk3,intkk4);
/*
*显示所有的银行信息
*/
publicabstractvoidshowAll();
*显示银行信息
publicabstractvoidshowInfo(List<
banks);
*查询银行信息
publicabstractvoidsearch(Stringkey);
*更新银行信息
publicabstractvoidupdate(intbno);
*删除银行信息
publicabstractvoiddelete(intbno);
(4).对接口的实现
importjava.util.Iterator;
importjava.util.Scanner;
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();
publicvoidshowInfo(List<
students){
System.out.println("
\t====================================================================="
);
Stringmsg="
\t银行名\t银行号\t所在城市\t所属区域\t银行数量\t员工数量\t现金储备\t黄金储备"
System.out.println(msg);
Iterator<
i=students.iterator();
while(i.hasNext()){
Bankinfostu=i.next();
if(stu!
=null){
Stringinf="
+stu.getBname()+"
+stu.getBno()+"
+stu.getBcity()+"
+stu.getBarea()
+stu.getBcount()+"
+stu.getBstaffcount()+"
+stu.getBmoney()+
"
+stu.getBgold();
System.out.println(inf);
publicvoidupdate(intbno){
Stringid=Integer.toString(bno);
student=dbOperate.search(id);
this.showInfo(student);
Bankinfostu=newBankinfo();
Scannerin=newScanner(System.in);
---更银行的名字---"
Stringbname=in.next();
stu.setBname(bname);
---更新银行的城市---"
Stringbcity=in.next();
stu.setBcit