数据库课程设计JAVA 个人记账管理系统Word格式.docx

上传人:b****1 文档编号:6087120 上传时间:2023-05-06 格式:DOCX 页数:32 大小:324.59KB
下载 相关 举报
数据库课程设计JAVA 个人记账管理系统Word格式.docx_第1页
第1页 / 共32页
数据库课程设计JAVA 个人记账管理系统Word格式.docx_第2页
第2页 / 共32页
数据库课程设计JAVA 个人记账管理系统Word格式.docx_第3页
第3页 / 共32页
数据库课程设计JAVA 个人记账管理系统Word格式.docx_第4页
第4页 / 共32页
数据库课程设计JAVA 个人记账管理系统Word格式.docx_第5页
第5页 / 共32页
数据库课程设计JAVA 个人记账管理系统Word格式.docx_第6页
第6页 / 共32页
数据库课程设计JAVA 个人记账管理系统Word格式.docx_第7页
第7页 / 共32页
数据库课程设计JAVA 个人记账管理系统Word格式.docx_第8页
第8页 / 共32页
数据库课程设计JAVA 个人记账管理系统Word格式.docx_第9页
第9页 / 共32页
数据库课程设计JAVA 个人记账管理系统Word格式.docx_第10页
第10页 / 共32页
数据库课程设计JAVA 个人记账管理系统Word格式.docx_第11页
第11页 / 共32页
数据库课程设计JAVA 个人记账管理系统Word格式.docx_第12页
第12页 / 共32页
数据库课程设计JAVA 个人记账管理系统Word格式.docx_第13页
第13页 / 共32页
数据库课程设计JAVA 个人记账管理系统Word格式.docx_第14页
第14页 / 共32页
数据库课程设计JAVA 个人记账管理系统Word格式.docx_第15页
第15页 / 共32页
数据库课程设计JAVA 个人记账管理系统Word格式.docx_第16页
第16页 / 共32页
数据库课程设计JAVA 个人记账管理系统Word格式.docx_第17页
第17页 / 共32页
数据库课程设计JAVA 个人记账管理系统Word格式.docx_第18页
第18页 / 共32页
数据库课程设计JAVA 个人记账管理系统Word格式.docx_第19页
第19页 / 共32页
数据库课程设计JAVA 个人记账管理系统Word格式.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

数据库课程设计JAVA 个人记账管理系统Word格式.docx

《数据库课程设计JAVA 个人记账管理系统Word格式.docx》由会员分享,可在线阅读,更多相关《数据库课程设计JAVA 个人记账管理系统Word格式.docx(32页珍藏版)》请在冰点文库上搜索。

数据库课程设计JAVA 个人记账管理系统Word格式.docx

针对某管理信息系统的需求,设计一个数据库系统。

具体内容如下:

(1)根据需求,建立ER模型。

通过ER图表示。

(2)在此基础上,设计物理表结构,编写创建数据库表的语句。

较高要求为在设计创建数据表语句的同时考虑性能上的要求,采用相关的磁盘存储技术。

(3)从实际查询应用出发,为一些主要的应用模块设计至少3个参数化视图。

(4)针对常用的业务,创建包,同时实现一个函数放入包中。

(5)从数据检验的角度出发,为相关的表建立至少1个触发器。

(6)从数据更新或修改的角度出发,设计至少1个存储过程。

(7)从安全的角度出发,规划系统的角色、用户、权限,并通过SQL实现。

(8)预计每个表的大致容量和增长速度。

指定备份的方案,写出相关的备份命令。

(9)以上所有命令及脚本均需测试,在设计报告中说明其功能并记录其输出。

2.3设计环境

(1)WINDOWS2000/2003/XP系统

(2)Oracle数据库管理系统

2.4开发语言

PL/SQL语言

3分析和设计

3.1系统E-R模型

图3-1个人记账管理系统E-R图

3.2表空间及表的设计

--Createtable

createtableBANK_INCOME(

IN_IDNUMBERnotnull,

IN_NAMEVARCHAR2(50),

IN_DATEVARCHAR2(50),

IN_MONEYNUMBER(10,2),

IN_COMMENTVARCHAR2(500)

tablespaceUSERS

pctfree10

initrans1

maxtrans255

storage

initial64K

minextents1

maxextentsunlimited

);

--Create/Recreateprimary,uniqueandforeignkeyconstraints

altertableBANK_INCOME

addconstraintPK_IN_IDprimarykey(IN_ID)

usingindex

tablespaceUSERS

initrans2

createtableBANK_OUT

OUT_IDNUMBERnotnull,

OUT_NAMEVARCHAR2(50),

OUT_DATEVARCHAR2(50),

OUT_MONEYNUMBER(10,2),

OUT_COMMENTVARCHAR2(500)

altertableBANK_OUT

addprimarykey(OUT_ID)

列名

类型

说明

in_id

number

主键,收入id

in_name

Varchar2(50)

收入项

in_date

收入日期

in_money

Number(10,2)

收入金额

in_comment

Varchar2(500)

收入备注

图3-2收入表

out_id

主键,支出id

out_name

支出项

out_date

支出日期

out_money

支出金额

out_comment

支出备注

图3-3支出表

3.3视图设计

图3-4收入视图

图3-5支出视图

3.4存储过程、函数、包的设计

图3-6存储过程

图3-7包的设计

3.5触发器设计

(1)收入触发器

createorreplacetriggertri_auto_income_id

beforeinsertonbank_income

foreachrow

declare

--localvariableshere

begin

selectseq_income_id.nextvalinto:

new.in_idfromdual;

endtri_auto_income_id;

(2)支出触发器

createorreplacetriggerTRI_AUTO_OUT_ID

beforeinsertonbank_out

selectseq_out_id.nextvalinto:

new.out_idfromdual;

endTRI_AUTO_OUT_ID;

3.6角色、用户、权限设计

--Createtherole

createroleROLE1;

--给角色授权

grantselect,update,insertonbank_incometorole1

grantselect,update,insertonbank_outtorole1

--Createtheuser

createuserhuanghua

identifiedby"

123456"

defaulttablespaceSYSTEM

temporarytablespaceTEMP

profileDEFAULT;

grantselect,update,insertonbank_incometohuanghuawithgrantoption

3.7备份方案设计

(1)启动SQL*plus,以SYSDBA身份登录数据库

(2)查询当前数据库所有数据文件、控制文件、联机重做文件的位置

SQL>

selectfile_namefromdba_data_files;

SELECTmemberFROMv$logfile;

SELECTvalueFROMv$parameterWHEREname=’control_files’;

(3)关闭数据库

SHUTDOWNIMMEDIATE

(4)复制所有数据文件、联机重做文件以及控制文件到备份磁盘可以直接在操作系统中使用复制、粘贴方式进行

(5)重新启动数据库

STARTUP

4课程设计总结

图4-1个人记账管理界面

图4-2收入记录界面

图4-3支出记录界面

图4-4查询收入支出界面

图4-5报表界面

4.2、设计总结

这次我们的课程设计题目是个人记账管理系统。

通过此次课程设计,掌握到了数据库系统的开发方法。

同时也加深了对刚刚学习的JAVA的印象。

整个代码在写的过程中出现了很多问题。

有的实在解决不了的问题,就去问教我们JAVA的柳小文老师,老师也非常乐意帮助我解决一些困难。

有的时候不懂的问题就去上网搜索答案,或者自己去看书。

学习需要自主,对这一点我颇有感触。

此次课程设计结束之后,我还意犹未尽,因为从中感觉到了写代码的趣味。

于是,我就开始想方设法找点小的应用程序去写。

因为这样的学习方法是最快也是最有效的方式。

比老师上课讲要好的多。

而且大学生也应该培养自己的动手能力。

而动手能力只能来自于自己从头到尾的去写一个不大的应用程序。

了解整个创作的一个大体思路,在写的过程中还要不断地去请教我们的老师。

因为他们对实际应用程序的把握比我们要强的多。

当然,学无止境,不能因为这么一点小的成就就止步不前。

前路很漫长,但我相信只要自己肯用心去学习,Nothingisimpossible!

参考文献

[1]孙风栋,刘蕾等.Oracle10g数据库基础教程[M].北京:

电子工业出版社,2012.10.

[2]王珊,萨师煊.数据库系统概论[M]北京:

高等教育出版社,2006.5.

[3]JavaProgrammingJava程序设计[M]北京:

清华大学出版社,2010.1.

 

致谢

感谢我们的指导老师柳小文老师,谢谢她在我们的课程设计过程中提出了指导性的方案和架构,并指引我们阅读相关的资料和书籍,使我们在不熟悉的领域中仍能迅速掌握新的方法和技术。

同时也感谢校领导给我们这次难得的锻炼机会,让我们能更好的理解和实践Oracle数据库,让我们对数据库有了更深刻的认知,对已学知识有了更进一步的巩固。

总之,通过这次课程设计,我获益良多。

附录

主要代码:

packagecom.sxt.bank.dao;

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.Statement;

/**

*数据库工具类

*@authorAdministrator

*

*/

publicclassDBUtil{

/**

*专用于取得数据库的连接

*@return

publicstaticConnectiongetConn(){

Connectionconn=null;

try{

//加载驱动

Class.forName("

oracle.jdbc.driver.OracleDriver"

);

Stringurl="

jdbc:

oracle:

thin:

@172.19.95.36:

1521:

orcl"

;

//取得连接

conn=DriverManager.getConnection(url,"

scott"

"

tiger"

}catch(Exceptione){

e.printStackTrace();

}

returnconn;

}

*专用于关闭连接

*@paramconn

*@paramstat

publicstaticvoidcloseConn(Connectionconn,Statementstat){

stat.close();

conn.close();

}catch(Exceptione2){

e2.printStackTrace();

}

收入数据处理代码:

importjava.sql.PreparedStatement;

importcom.sxt.bank.entity.InCome;

*数据处理

publicclassIncomeDao{

*用于保存收入项到数据库

*@paramincome

publicvoidsaveIncome(InComeincome){

PreparedStatementstat=null;

conn=DBUtil.getConn();

//得到预编译执行器

stat=conn.prepareStatement("

insertintobank_income(in_name,in_date,in_money,in_comment)values(?

?

)"

//设置参数

//stat.setInt(1,2);

stat.setString(1,income.getInName());

stat.setString(2,income.getInDate());

stat.setFloat(3,income.getMoney());

stat.setString(4,income.getComment());

//执行

stat.execute();

}finally{

DBUtil.closeConn(conn,stat);

支出数据处理代码:

importcom.sxt.bank.entity.Out;

*支出的数据处理

publicclassOutDao{

*用于保存支出项到数据库

publicvoidsaveOutcome(Outout){

insertintobank_out(out_name,out_date,out_money,out_comment)values(?

stat.setString(1,out.getOutName());

stat.setString(2,out.getOutDate());

stat.setFloat(3,out.getMoney());

stat.setString(4,out.getComment());

try{

stat.close();

conn.close();

}catch(Exceptione2){

e2.printStackTrace();

}

收入支出查询代码:

importjava.sql.ResultSet;

importjava.util.ArrayList;

*收入支出查询

publicclassQueryDao{

*取得数据的记录,并封装成集合

publicArrayListgetInList(){

ResultSetrs=null;

//新建一个集合用来装out

ArrayList<

InCome>

inList=newArrayList<

();

//得到连接

//SQL语句执行器

select*frombank_income"

//执行SQL查询,得到结果集

rs=stat.executeQuery();

while(rs.next()){

//从记录中取值参数类型字段名

StringinName=rs.getString("

in_name"

StringinDate=rs.getString("

in_date"

floatmoney=rs.getFloat("

in_money"

Stringcomment=rs.getString("

in_comment"

//封装成对象

InComein=newInCome(inName,inDate,money,comment);

//将对象装载到集合中

inList.add(in);

//返回

returninList;

publicArrayListgetOutList(){

Out>

outList=newArrayList<

select*frombank_out"

StringoutName=rs.getString("

out_name"

StringoutDate=rs.getString("

out_date"

out_money"

out_comment"

Outout=newOut(outName,outDate,money,comment);

outList.add(out);

returnoutList;

报表代码:

packagecom.sxt.bank.view;

importjava.awt.EventQueue;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjava.awt.event.MouseAdapter;

importjava.awt.event.MouseEvent;

importjava.awt.event.WindowAdapter;

importjava.awt.event.WindowEvent;

impor

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2