数据库课程设计JAVA 个人记账管理系统范本模板.docx

上传人:b****3 文档编号:4049216 上传时间:2022-11-27 格式:DOCX 页数:27 大小:316.29KB
下载 相关 举报
数据库课程设计JAVA 个人记账管理系统范本模板.docx_第1页
第1页 / 共27页
数据库课程设计JAVA 个人记账管理系统范本模板.docx_第2页
第2页 / 共27页
数据库课程设计JAVA 个人记账管理系统范本模板.docx_第3页
第3页 / 共27页
数据库课程设计JAVA 个人记账管理系统范本模板.docx_第4页
第4页 / 共27页
数据库课程设计JAVA 个人记账管理系统范本模板.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

数据库课程设计JAVA 个人记账管理系统范本模板.docx

《数据库课程设计JAVA 个人记账管理系统范本模板.docx》由会员分享,可在线阅读,更多相关《数据库课程设计JAVA 个人记账管理系统范本模板.docx(27页珍藏版)》请在冰豆网上搜索。

数据库课程设计JAVA 个人记账管理系统范本模板.docx

数据库课程设计JAVA个人记账管理系统范本模板

 

1前言

设计一个个人记账管理系统,用JAVA来编写。

综合运用JAVA的基础和算法设计的基本原则,用PLSQLDeveloper,orcale等工具实现。

功能包括收入记录、支出记录、查询功能、报表,并将记录保存在数据库中,通过连接数据库可以查询所有记录,可以通过选择日期将符合条件的记录显示在查询框中,可以选择收入或支出查询收入记录或者支出记录.用户可以通过报表了解到指定时间段内收入总和、支出总和、余额.

2需求分析

2。

1课程设计目的

通过专业课程设计Ⅱ,即大型数据库系统课程设计,有助于培养学生综合运用数据库相关知识解决实际问题的能力。

本设计要求对实际问题进行需求分析,提炼实际问题中的数据,建立关系模型,并在大型数据库中得以实现。

同时要求对数据库的运营、管理及使用上进行必要的规划和实现.

2.2课程设计任务

针对某管理信息系统的需求,设计一个数据库系统.具体内容如下:

(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

pctfree10

initrans2

maxtrans255

storage

initial64K

minextents1

maxextentsunlimited

);

--Createtable

createtableBANK_OUT

OUT_IDNUMBERnotnull,

OUT_NAMEVARCHAR2(50),

OUT_DATEVARCHAR2(50),

OUT_MONEYNUMBER(10,2),

OUT_COMMENTVARCHAR2(500)

tablespaceUSERS

pctfree10

initrans1

maxtrans255

storage

initial64K

minextents1

maxextentsunlimited

);

--Create/Recreateprimary,uniqueandforeignkeyconstraints

altertableBANK_OUT

addprimarykey(OUT_ID)

usingindex

tablespaceUSERS

pctfree10

initrans2

maxtrans255

storage

initial64K

minextents1

maxextentsunlimited

);

列名

类型

说明

in_id

number

主键,收入id

in_name

Varchar2(50)

收入项

in_date

Varchar2(50)

收入日期

in_money

Number(10,2)

收入金额

in_comment

Varchar2(500)

收入备注

图3-2收入表

列名

类型

说明

out_id

number

主键,支出id

out_name

Varchar2(50)

支出项

out_date

Varchar2(50)

支出日期

out_money

Number(10,2)

支出金额

out_comment

Varchar2(500)

支出备注

图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

foreachrow

declare

-—localvariableshere

begin

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;

SQL>SELECTmemberFROMv$logfile;

SQL〉SELECTvalueFROMv$parameterWHEREname=’control_files’;

(3)关闭数据库

SQL>SHUTDOWNIMMEDIATE

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

(5)重新启动数据库

SQL>STARTUP

4课程设计总结

4。

1运行结果如下图所示:

图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){

try{

stat。

close();

conn.close();

}catch(Exceptione2){

e2。

printStackTrace();

}

}

收入数据处理代码:

packagecom。

sxt。

bank.dao;

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.PreparedStatement;

importcom.sxt。

bank。

entity。

InCome;

/**

*数据处理

*@authorAdministrator

*/

publicclassIncomeDao{

/**

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

*@paramincome

*/

publicvoidsaveIncome(InComeincome){

Connectionconn=null;

PreparedStatementstat=null;

try{

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();

}catch(Exceptione){

e。

printStackTrace();

}finally{

DBUtil。

closeConn(conn,stat);

}

}

支出数据处理代码:

packagecom.sxt.bank。

dao;

importjava。

sql.Connection;

importjava。

sql。

DriverManager;

importjava.sql。

PreparedStatement;

importcom.sxt.bank.entity。

Out;

/**

*支出的数据处理

*@authorAdministrator

*

*/

publicclassOutDao{

/**

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

*@paramincome

*/

publicvoidsaveOutcome(Outout){

Connectionconn=null;

PreparedStatementstat=null;

try{

//加载驱动

Class.forName(”oracle.jdbc。

driver。

OracleDriver”);

Stringurl=”jdbc:

oracle:

thin:

@172。

19。

95。

36:

1521:

orcl”;

//取得连接

conn=DriverManager。

getConnection(url,"scott”,”tiger”);

//得到预编译执行器

stat=conn。

prepareStatement("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());

//执行

stat。

execute();

}catch(Exceptione){

e.printStackTrace();

}finally{

try{

stat。

close();

conn.close();

}catch(Exceptione2){

e2.printStackTrace();

}

}

}

收入支出查询代码:

packagecom.sxt.bank.dao;

importjava.sql。

Connection;

importjava.sql.PreparedStatement;

importjava.sql.ResultSet;

importjava。

util.ArrayList;

importcom.sxt。

bank.entity.InCome;

importcom。

sxt。

bank.entity.Out;

/**

*收入支出查询

*@authorAdministrator

*

*/

publicclassQueryDao{

/**

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

*@return

*/

publicArrayListgetInList(){

Connectionconn=null;

PreparedStatementstat=null;

ResultSetrs=null;

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

ArrayList();

try{

//得到连接

conn=DBUtil.getConn();

//SQL语句执行器

stat=conn。

prepareStatement(”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);

}

}catch(Exceptione){

e.printStackTrace();

}finally{

DBUtil.closeConn(conn,stat);

//返回

returninList;

/**

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

*@return

*/

publicArrayListgetOutList(){

Connectionconn=null;

PreparedStatementstat=null;

ResultSetrs=null;

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

ArrayListoutList=newArrayList〈Out〉();

try{

//得到连接

conn=DBUtil.getConn();

//SQL语句执行器

stat=conn。

prepareStatement(”select*frombank_out”);

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

rs=stat.executeQuery();

while(rs。

next()){

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

StringoutName=rs.getString(”out_name");

StringoutDate=rs。

getString("out_date");

floatmoney=rs。

getFloat(”out_money");

Stringcomment=rs。

getString("out_comment”);

//封装成对象

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

//将对象装载到集合中

outList。

add(out);

}

}catch(Exceptione){

e.printStackTrace();

}finally{

DBUtil.closeConn(conn,stat);

//返回

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;

importjava。

util.ArrayList;

importjavax.swing。

ImageIcon;

importjavax。

swing。

JButton;

importjavax。

swing.JFrame;

importjavax。

swing。

JLabel;

importjavax。

swing。

JPanel;

importjavax。

swing。

JScrollPane;

importjavax。

swing.JTable;

importjavax。

swing.JTextFi

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

当前位置:首页 > 小学教育 > 语文

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

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