本节概要

本节将实现数据库记录的备份、恢复功能和软件的退出。

备份功能

备份功能同样是在MainPageController.java中的backupMenuItemEvent()方法所触发的,即事件处理代码写在该方法内。

注意,需要在db.properties中添加一对键值对,即是数据库名称,你要备份的数据库名称。

    /*** “备份”菜单项的事件监听器** @param actionEvent 事件*/@FXMLpublic void backupMenuItemEvent(ActionEvent actionEvent) throws IOException {//实例化文件选择器FileChooser fileChooser = new FileChooser();//设置打开文件选择框默认输入的文件名fileChooser.setInitialFileName("Database_Backup_" + dateTools.dateFormat(new Date(), "yyyy-MM-dd") + ".sql");//打开文件选择框File result = fileChooser.showSaveDialog(null);if (result != null) {String savePath = result.getAbsolutePath();// 实例化Properties对象Properties properties = new Properties();// 加载properties配置文件FileInputStream fis = new FileInputStream(new File("src\\AccountSystem\\properties\\db.properties"));properties.load(fis);// 通过键名获取对应的值String databaseName = properties.get("databaseName").toString();String user = properties.get("user").toString();String password = properties.get("password").toString();// 调用备份方法需要提供MySQL的用户名、密码和数据库名,这些数据从properties文件中读取boolean b = JDBCUtils.backup(user, password, savePath, databaseName);if (b) {SimpleTools.informationDialog(Alert.AlertType.INFORMATION, "提示", "信息", "备份数据库成功!");} else {SimpleTools.informationDialog(Alert.AlertType.ERROR, "提示", "错误", "备份数据库失败!");}// 关闭流fis.close();}}

通过FileChooser选择要备份的路径,然后读取db.properties中的数据库名称以及用户和密码,然后将其作为参数传递到JDBCUtils的backup方法中,执行备份操作。该backup()本质上是执行的DOS命令,只不过是封装到方法内而已。

运行程序,测试功能:

备份成功后,用记事本打开,可以看到如下信息:

如果输出backup()方法的stmt,即可在控制台看到输出的信息:

mysqldump -uroot -padmin db_bookkeepingSystem > C:\Users\Administrator\Music\Database_Backup_2020-02-12.sql

其中root是用户名,admin是数据库登录密码,db_bookkeepingSystem是要备份的数据库名称,而后面的路径是要保存的sql文件地址。

把上面的这个语句在DOS窗口也可以得到执行:

恢复功能

同样是写在recoverMenuItemEvent()方法内的事件处理,代码如下:

    /*** “恢复”菜单项的事件监听器** @param actionEvent 事件*/@FXMLpublic void recoverMenuItemEvent(ActionEvent actionEvent) throws IOException {//实例化文件选择器FileChooser fileChooser = new FileChooser();//设置默认文件过滤器fileChooser.setSelectedExtensionFilter(new FileChooser.ExtensionFilter("sql(*.sql)", "sql"));//打开文件选择框File result = fileChooser.showOpenDialog(null);if (result != null) {// 恢复文件的路径String recoverPath = result.getAbsolutePath();// 实例化Properties对象Properties properties = new Properties();// 加载properties配置文件FileInputStream fis = new FileInputStream(new File("src\\AccountSystem\\properties\\db.properties"));properties.load(fis);// 通过键名获取对应的值String databaseName = properties.get("databaseName").toString();String user = properties.get("user").toString();String password = properties.get("password").toString();boolean b = JDBCUtils.recover(user, password, databaseName, recoverPath);if (b) {// 刷新界面显示的数据initialize();SimpleTools.informationDialog(Alert.AlertType.INFORMATION, "提示", "信息", "数据库恢复成功!");} else {SimpleTools.informationDialog(Alert.AlertType.ERROR, "提示", "错误", "数据库恢复失败!");}// 关闭流fis.close();}}

同样调用了JDBCUtils类中的recover方法。

退出功能

退出功能即结束程序,通常使用

System.exit(0);

因此退出菜单项的事件监听器代码就是下面这些了:

    /*** “退出”菜单项的事件监听器** @param actionEvent 事件*/@FXMLpublic void exitMenuItemEvent(ActionEvent actionEvent) {System.exit(0);}

然后点击”退出“菜单项就会结束程序。

可搜索微信公众号【Java实例程序】或者扫描下方二维码关注公众号获取更多。

注意:在公众号后台回复【20200321】可获取本章的源码 。

Java实战之管家婆记账系统(7)——备份、恢复和退出功能实现相关推荐

  1. Java实战之管家婆记账系统(6)——导入和导出功能实现

    本节概要 本节将实现将用户的收入和支出记录导出到excel表中,也可以从excel中导入到管家婆记账系统中. 导出 将用户的记录导出到excel表中,导出功能的实现不需要界面,是通过菜单项进行触发的事 ...

  2. Java实战之管家婆记账系统(4)——用户注册及登录功能实现

    首先使用IDEA创建一个普通的JavaFX项目,并按照下图创建文件夹. 接着是引入要使用的第三方包,需要用到的包在file文件夹下的jar包中,引入即可. 在引入成功后,数据库表的创建已经在第二节文章 ...

  3. Java实战之管家婆记账系统(5)——主界面及功能实现

    本节概要 本节将实现主界面,即在登录成功后显示的主界面,将显示用户的收入支出余额信息及在右边的面板中以表格的形式显示所有的收入支出记录. 前期准备 由于需要使用表格显示记录数据,所以需要使用到实体类来 ...

  4. Java实战之管家婆记账系统(22)——实现修改软件主题皮肤功能

    本节概要 本节实现修改界面皮肤的功能,即使整个程序应用不同的CSS样式. 实现功能 关于软件不同的皮肤要能保存起来,即在软件关闭后再次重启也能显示改变的皮肤,因此需要将其保存在电脑本地,所以在prop ...

  5. Java实战之管家婆记账系统(8)——添加账目界面及功能实现

    本节概要 本节将实现账目记录的添加. 前期准备 在本节中实现记录的添加将用到分类信息的查询,所以在dao包下创建ClassificationDao.java类,代码如下: package Accoun ...

  6. java连接mongodb的jar包_Java实战之管家婆记账系统(1)——项目简述

    项目简述: 该项目是一个通过JavaFX实现的管家婆记账系统,具有记账的功能. 使用软件: IntelliJ IDEA 2018.3.5(Ultim ate Edition):编写Java项目代码. ...

  7. java计算机毕业设计家庭记账系统源程序+mysql+系统+lw文档+远程调试

    java计算机毕业设计家庭记账系统源程序+mysql+系统+lw文档+远程调试 java计算机毕业设计家庭记账系统源程序+mysql+系统+lw文档+远程调试 本源码技术栈: 项目架构:B/S架构 开 ...

  8. java毕业设计家庭理财记账系统mybatis+源码+调试部署+系统+数据库+lw

    java毕业设计家庭理财记账系统mybatis+源码+调试部署+系统+数据库+lw java毕业设计家庭理财记账系统mybatis+源码+调试部署+系统+数据库+lw 本源码技术栈: 项目架构:B/S ...

  9. 小干货:Linux 系统的备份恢复

    作者:LeoLan's Blog https://reurl.cc/gm5ZkQ tar 命令 副本(本机备份整个系统,以后还原还是还原到本机) 注意根目录下要有充足的可用空间用于备份. cd / # ...

最新文章

  1. 2021年春季学期-信号与系统-第十五次作业参考答案-第八小题参考答案
  2. 日期和时间规范函数 (Entity SQL)
  3. Python打开文件,将list、numpy数组内容写入txt文件中
  4. Bash : test 命令
  5. 每日一题(5) —— 逗号表达式
  6. 卧槽!我随便写的一个 API 竟获得 2.5 亿的访问量...
  7. Swift初探(一)
  8. library的英语怎么读音_英语元音与辅音
  9. Jenkins构建触发器(定时构建项目)
  10. 可恨的KYLIN OS:动不动就不支持老机
  11. chmod命令用法linux,Linux下chmod命令详细介绍及用法举例
  12. Codevs 3100 蜗牛的旅行
  13. data在python_Fake data的使用和产生 - Python篇
  14. AUTOSAR NvMFee Configuration
  15. 计算机操作与规范,计算机操作基础与汉字规范码拼音拼形训练
  16. 滴答(DiDa)-客户端体验版上线了
  17. linux并发控制之顺序锁
  18. 达梦数据库安全管理与体系
  19. 因子分析法(Factor Analysis Method) 【转】
  20. Acetal-PEG-NHS,NHS-PEG-Acetal,乙缩醛-聚乙二醇-琥珀酰亚胺酯化学试剂供应

热门文章

  1. table2excel.js兼容ie问题
  2. Mac OS上JDK8更换JDK11
  3. EhCache 缓存框架
  4. 悼念左耳朵耗子陈皓,他是互联网精神的代表
  5. Mac OS 输入adb命令无效(zsh: command not found: adb)的解决方法
  6. 博途TIA Portal WinCC软件版本和功能区别
  7. Python——文件(File)操作汇总
  8. 军用软件概算计价规范_军用软件概算计价规范_关于举办军用软件功能点分析及计价规范讲解与交流会的通知......
  9. c语言struct结构体类型有关typedef定义的本名和别名
  10. iPhone 6弧角边 如放大版iPod touch