ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:322.36KB ,
资源ID:29816306      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/29816306.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据库课程设计JAVA 个人记账管理系统.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、数据库课程设计JAVA 个人记账管理系统1 前言设计一个个人记账管理系统,用JAVA来编写。综合运用JAVA的基础和算法设计的基本原则,用PLSQL Developer,orcale等工具实现。功能包括收入记录、支出记录、查询功能、报表,并将记录保存在数据库中,通过连接数据库可以查询所有记录,可以通过选择日期将符合条件的记录显示在查询框中,可以选择收入或支出查询收入记录或者支出记录。用户可以通过报表了解到指定时间段内收入总和、支出总和、余额。2 需求分析2.1 课程设计目的通过专业课程设计,即大型数据库系统课程设计,有助于培养学生综合运用数据库相关知识解决实际问题的能力。本设计要求对实际问题进

2、行需求分析,提炼实际问题中的数据,建立关系模型,并在大型数据库中得以实现。同时要求对数据库的运营、管理及使用上进行必要的规划和实现。2.2 课程设计任务针对某管理信息系统的需求,设计一个数据库系统。具体内容如下:(1)根据需求,建立ER模型。通过ER图表示。(2)在此基础上,设计物理表结构,编写创建数据库表的语句。较高要求为在设计创建数据表语句的同时考虑性能上的要求,采用相关的磁盘存储技术。(3)从实际查询应用出发,为一些主要的应用模块设计至少3个参数化视图。(4)针对常用的业务,创建包,同时实现一个函数放入包中。(5)从数据检验的角度出发,为相关的表建立至少1个触发器。(6)从数据更新或修改

3、的角度出发,设计至少1个存储过程。(7)从安全的角度出发,规划系统的角色、用户、权限,并通过SQL实现。(8)预计每个表的大致容量和增长速度。指定备份的方案,写出相关的备份命令。(9)以上所有命令及脚本均需测试,在设计报告中说明其功能并记录其输出。2.3 设计环境(1)WINDOWS 2000/2003/XP系统(2)Oracle数据库管理系统2.4 开发语言PL/SQL语言3 分析和设计3.1 系统E-R模型图3-1 个人记账管理系统E-R图3.2 表空间及表的设计 - Create tablecreate table BANK_INCOME( IN_ID NUMBER not null,

4、IN_NAME VARCHAR2(50), IN_DATE VARCHAR2(50), IN_MONEY NUMBER(10,2), IN_COMMENT VARCHAR2(500)tablespace USERS pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited );- Create/Recreate primary, unique and foreign key constraints alter table BANK_INCOME add constrain

5、t PK_IN_ID primary key (IN_ID) using index tablespace USERS pctfree 10 initrans 2 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited );- Create tablecreate table BANK_OUT( OUT_ID NUMBER not null, OUT_NAME VARCHAR2(50), OUT_DATE VARCHAR2(50), OUT_MONEY NUMBER(10,2), OUT_COMMENT VARC

6、HAR2(500)tablespace USERS pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited );- Create/Recreate primary, unique and foreign key constraints alter table BANK_OUT add primary key (OUT_ID) using index tablespace USERS pctfree 10 initrans 2 maxtrans 255 storage (

7、 initial 64K minextents 1 maxextents unlimited );列名类型说明in_idnumber主键,收入idin_nameVarchar2(50)收入项in_dateVarchar2(50)收入日期in_moneyNumber(10,2)收入金额in_commentVarchar2(500)收入备注图3-2 收入表列名类型说明out_idnumber主键,支出idout _nameVarchar2(50)支出项out _dateVarchar2(50)支出日期out _moneyNumber(10,2)支出金额out _commentVarchar2(50

8、0)支出备注 图3-3 支出表3.3 视图设计图3-4 收入视图图3-5 支出视图3.4 存储过程、函数、包的设计图3-6 存储过程图3-7包的设计3.5 触发器设计 (1)收入触发器create or replace trigger tri_auto_income_id before insert on bank_income for each rowdeclare - local variables herebegin select seq_income_id.nextval into:new.in_id from dual;end tri_auto_income_id;(2)支出触发器c

9、reate or replace trigger TRI_AUTO_OUT_ID before insert on bank_out for each rowdeclare - local variables herebegin select seq_out_id.nextval into:new.out_id from dual;end TRI_AUTO_OUT_ID;3.6 角色、用户、权限设计- Create the role create role ROLE1;-给角色授权grant select,update,insert on bank_income to role1 grant

10、select,update,insert on bank_out to role1- Create the user create user huanghuaidentified by 123456default tablespace SYSTEMtemporary tablespace TEMP profile DEFAULT;grant select,update,insert on bank_income to huanghua with grant option3.7 备份方案设计(1)启动SQL*plus,以SYSDBA身份登录数据库(2)查询当前数据库所有数据文件、控制文件、联机重

11、做文件的位置SQLselect file_name from dba_data_files;SQLSELECT member FROM v$logfile;SQLSELECT value FROM v$parameter WHERE name=control_files;(3)关闭数据库SQLSHUTDOWN IMMEDIATE(4)复制所有数据文件、联机重做文件以及控制文件到备份磁盘可以直接在操作系统中使用复制、粘贴方式进行(5)重新启动数据库SQLSTARTUP4 课程设计总结4.1运行结果如下图所示: 图4-1 个人记账管理界面 图4-2 收入记录界面 图4-3支出记录界面 图4-4 查

12、询收入支出界面 图4-5 报表界面4.2、设计总结这次我们的课程设计题目是个人记账管理系统。通过此次课程设计,掌握到了数据库系统的开发方法。同时也加深了对刚刚学习的JAVA的印象。整个代码在写的过程中出现了很多问题。有的实在解决不了的问题,就去问教我们JAVA的柳小文老师,老师也非常乐意帮助我解决一些困难。有的时候不懂的问题就去上网搜索答案,或者自己去看书。学习需要自主,对这一点我颇有感触。此次课程设计结束之后,我还意犹未尽,因为从中感觉到了写代码的趣味。于是,我就开始想方设法找点小的应用程序去写。因为这样的学习方法是最快也是最有效的方式。比老师上课讲要好的多。而且大学生也应该培养自己的动手能

13、力。而动手能力只能来自于自己从头到尾的去写一个不大的应用程序。了解整个创作的一个大体思路,在写的过程中还要不断地去请教我们的老师。因为他们对实际应用程序的把握比我们要强的多。当然,学无止境,不能因为这么一点小的成就就止步不前。前路很漫长,但我相信只要自己肯用心去学习,Nothing is impossible!参考文献1孙风栋,刘蕾等.Oracle 10g数据库基础教程M.北京:电子工业出版社,2012.10.2王珊,萨师煊.数据库系统概论M北京:高等教育出版社,2006.5.3Java Programming Java程序设计M北京:清华大学出版社,2010.1.致 谢感谢我们的指导老师柳小

14、文老师,谢谢她在我们的课程设计过程中提出了指导性的方案和架构,并指引我们阅读相关的资料和书籍,使我们在不熟悉的领域中仍能迅速掌握新的方法和技术。同时也感谢校领导给我们这次难得的锻炼机会,让我们能更好的理解和实践Oracle数据库,让我们对数据库有了更深刻的认知,对已学知识有了更进一步的巩固。总之,通过这次课程设计,我获益良多。附 录主要代码:package com.sxt.bank.dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.Statement;/* * 数据库工具类 * author

15、 Administrator * */public class DBUtil /* * 专用于取得数据库的连接 * return */ public static Connection getConn() Connection conn=null; try /加载驱动 Class.forName(oracle.jdbc.driver.OracleDriver); String url=jdbc:oracle:thin:172.19.95.36:1521:orcl; /取得连接 conn=DriverManager.getConnection(url, scott, tiger); catch

16、(Exception e) e.printStackTrace(); return conn; /* * 专用于关闭连接 * param conn * param stat */ public static void closeConn(Connection conn,Statement stat) try stat.close(); conn.close(); catch (Exception e2) e2.printStackTrace(); 收入数据处理代码:package com.sxt.bank.dao;import java.sql.Connection;import java.s

17、ql.DriverManager;import java.sql.PreparedStatement;import com.sxt.bank.entity.InCome;/* * 数据处理 * author Administrator * */public class IncomeDao /* * 用于保存收入项到数据库 * param income */ public void saveIncome(InCome income) Connection conn=null; PreparedStatement stat=null; try conn=DBUtil.getConn(); /得到预

18、编译执行器 stat=conn.prepareStatement(insert into bank_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.exec

19、ute(); catch (Exception e) e.printStackTrace(); finally DBUtil.closeConn(conn, stat); 支出数据处理代码:package com.sxt.bank.dao;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import com.sxt.bank.entity.Out;/* * 支出的数据处理 * author Administrator * */public class OutDa

20、o /* * 用于保存支出项到数据库 * param income */ public void saveOutcome(Out out) Connection conn=null; PreparedStatement stat=null; try /加载驱动 Class.forName(oracle.jdbc.driver.OracleDriver); String url=jdbc:oracle:thin:172.19.95.36:1521:orcl; /取得连接 conn=DriverManager.getConnection(url, scott, tiger); /得到预编译执行器

21、stat=conn.prepareStatement(insert into bank_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 (Exception e) e.printS

22、tackTrace(); finally try stat.close(); conn.close(); catch (Exception e2) e2.printStackTrace(); 收入支出查询代码:package com.sxt.bank.dao;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.ArrayList;import com.sxt.bank.entity.InCome;import com.sxt.bank.en

23、tity.Out;/* * 收入支出查询 * author Administrator * */public class QueryDao /* * 取得数据的记录,并封装成集合 * return */ public ArrayList getInList() Connection conn=null; PreparedStatement stat=null; ResultSet rs=null; /新建一个集合用来装out ArrayList inList=new ArrayList(); try /得到连接 conn=DBUtil.getConn(); /SQL语句执行器 stat=con

24、n.prepareStatement(select * from bank_income); /执行SQL查询,得到结果集 rs=stat.executeQuery(); while(rs.next() /从记录中取值 参数类型 字段名 String inName=rs.getString(in_name); String inDate=rs.getString(in_date); float money=rs.getFloat(in_money); String comment=rs.getString(in_comment); /封装成对象 InCome in=new InCome(inN

25、ame, inDate, money, comment); /将对象装载到集合中 inList.add(in); catch (Exception e) e.printStackTrace(); finally DBUtil.closeConn(conn, stat); /返回 return inList; /* * 取得数据的记录,并封装成集合 * return */ public ArrayList getOutList() Connection conn=null; PreparedStatement stat=null; ResultSet rs=null; /新建一个集合用来装out

26、 ArrayList outList=new ArrayList(); try /得到连接 conn=DBUtil.getConn(); /SQL语句执行器 stat=conn.prepareStatement(select * from bank_out); /执行SQL查询,得到结果集 rs=stat.executeQuery(); while(rs.next() /从记录中取值 参数类型 字段名 String outName=rs.getString(out_name); String outDate=rs.getString(out_date); float money=rs.getF

27、loat(out_money); String comment=rs.getString(out_comment); /封装成对象 Out out=new Out(outName, outDate, money, comment); /将对象装载到集合中 outList.add(out); catch (Exception e) e.printStackTrace(); finally DBUtil.closeConn(conn, stat); /返回 return outList; 报表代码:package com.sxt.bank.view;import java.awt.EventQue

28、ue;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.util.ArrayList;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;

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

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