模拟电话簿系统,新增功能:备份数据和恢复备份

在原来的系统之上增加了两个新的功能,备份数据和恢复备份:

下面是两个功能的具体实现方法:

public void saveall() // 备份所有数据
    {
        List<Person> list1 = new ArrayList();
        try {
            // 加载数据库驱动
            Class.forName("oracle.jdbc.driver.OracleDriver");
            // 获取与数据库的连接
            Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "text0816",
                    "666666");
            // 获取操作数据库的声明
            Statement st = conn.createStatement();

            String sql = "select * from person";

            ResultSet rs = st.executeQuery(sql);

            while (rs.next()) {
                // 实例化Person类
                Person per = new Person();
                // 添加信息到per对象中
                per.setId(rs.getInt("id"));
                per.setName(rs.getString("name"));
                per.setAge(rs.getInt("age"));
                per.setSex(rs.getString("sex"));
                per.setTelNum(rs.getLong("telnum"));
                per.setAddress(rs.getString("address"));

                // 添加per对象放到list集合中
                list1.add(per);

            }            

            File file = new File("e:/DIANHUABU");
            if (!file.exists()) {
                file.mkdirs();
            }
            ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("e:/DIANHUABU/OLDMESSAGE.obj"));

            out.writeObject(list1);

            out.close();

            System.out.println("数据保存完成...");
            // System.out.println(cards);

            // 释放资源
            rs.close();
            st.close();
            conn.close();

        } catch (Exception e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
    }
public void recoverall() //恢复备份
    {
        try {
            ObjectInputStream in = new ObjectInputStream(new FileInputStream("e:/DIANHUABU/OLDMESSAGE.obj"));

            List<Person> list1 = (List<Person>) in.readObject();

            // 加载数据库驱动
            Class.forName("oracle.jdbc.driver.OracleDriver");
            // 获取与数据库的连接
            Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "text0816",
                    "666666");
            // 获取操作数据库的声明
            Statement st = conn.createStatement();

            for (Person p : list1)
            {

                String sql = "insert into person values(‘"+p.getId()+"‘,‘"+p.getName()+"‘,‘"+p.getAge()
                        +"‘,‘"+p.getSex()+"‘,‘"+p.getTelNum()+"‘,‘"+p.getAddress()+"‘)";

                st.executeUpdate(sql);

            }

            System.out.println("恢复备份成功!");

            // 释放资源
            st.close();
            conn.close();

        } catch (Exception e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }

    }

测试结果截图如下:

首先备份所有的数据:

然后删除所有的数据;

此时,数据库中的所有数据已经全部被清空

最后,我们恢复备份:

现在再查看数据库中的数据;

时间: 2024-10-04 11:58:50

模拟电话簿系统,新增功能:备份数据和恢复备份的相关文章

完全备份数据和差异备份数据的shell脚本

#!/bin/bash  # # Description: 该脚本功能,以周为单位循环:周五实行完全备份,周六不备份,周日至周四实行差异备份: #              因工作需要,不实行压缩打包的方式,采用cp完全备份,rsync差异备份: #              若要使用该脚本,请直接修改下面的两个参数:BackupPath和DATAPath,其他地方请不要修改: #  DATE: 2017-04-24 22:43:00 # MODIFY DATE: 2017-04-28 10:0

怎么恢复用mysqldump备份数据和恢复数据

1.备份: 写一个脚本: !/bin/bash` echo 'dump begin' Now=$(date +%d-%m-%Y--%H:%M:%S) //获取当前时间 File=backup-$Now.sql.gz //组成文件名 mysqldump -u zc_test -pzc_test2016 -h test.rtdream.com --port 3307 --all-databases --single-transaction --routines --add-drop-table --

mysql备份语句和恢复备份

备份语句 mysqldump --single-transaction -R --events --triggers --master-data=2 -u ${username} -p ${ppasswd} -h127.0.0.1 --databases $DB_NAME gzip > /tmp/${GZ_NAME}.sql.gz 恢复语句 mysql -uroot -p 库名 <文件.sql 原文地址:https://www.cnblogs.com/hope123/p/11363639.ht

Vbs脚本实现数据CUT备份及自动轮询删除备份数据

我们上一篇文章中介绍了使用vbs脚本不同版本的office激活任务,其实说到vbs脚本相信大家都很了解了,有什么作用呢,其实说白了就是执行批处理任务的工具.Vbs在windows上应用相对比较多,其功能上我们就不多说了,今天呢还是介绍vbs脚本程序备份数据的计划任务.怎么想起来备份数据呢,近期呢,领导突然想到对公司的SAP备份数据进行异地备份,这样能提高数据的可恢复性:公司的SAP的系统是每天晚上2点执行一次备份,然后新的一天数据会覆盖旧的数据,如果当数据出现错误,我们也无法使用该之前的备份进行

mysql数据库种类介绍及 mysqldump备份数据

一  Nosql 指的是非关系型数据库,作为传统关系型数据库的一个有效补充,针对特定场景.以高性能和使用便利为目一 的功能特异化的数据库产品 Nosql特点: Noosql数据库存储不需要固定的表结构 1 他不是否定关系数据库,而是作为关系数据库的一个重要补充 2 Nosql为了高性能高并发而产生的 3 Nosql典型产品memcache(纯内存) 一重启就丢数据 redis(持久化缓存)  持久化缓存 mongodb 二  非关系型数据库种类: 1 键值存储数据库 2 列存储数据库 3 面向文

c# 备份数据

#region 备份数据文件 /// <summary> /// 备份数据文件 /// </summary> /// <param name="strFileName">备份文件目录</param> /// <param name="strTypeKufen">发送还是接收</param> /// <param name="strMessageInfoType">

大数据产品的备份及恢复

Hbase Distcp方式 整体下载上传方式 CopyTable备份 Export工具 elasticsearch 建立备份快照数据挂载点 建立快照仓储repository 建立snapshot快照备份 恢复snapshot快照数据 原集群恢复 新集群恢复 HDFS Hbase的备份恢复 hbase数据备份策略有两类: 离线备份(关闭Hbase集群进行全备份,包括distcp方式.整体下载上传) 在线备份(在线对集群进行备份,存在数据丢失的风险) 进行离线备份时,必须全部关闭Hbase集群,或

Oracle VM VirtualBox虚拟机怎么用快照功能?备份后怎么恢复?

虚拟机运行的时候选择“控制”->“生成备份”. 备份完成要恢复的话,在快速修复页面,点击已备份项右键恢复备份即可. (快速修复页面在右上角, 有 "明细" 与 "备份")

centos mysql 实战 第十二节课 备份恢复 备份方案 备份可以分为几种形式 mysqldump 在不同版本里对性能会不会有影响? mysqldump 的用户需要什么权限 mysqldump 支持Where条件 备份评估

centos mysql 实战 第十二节课  备份恢复  备份方案  备份可以分为几种形式  mysqldump 在不同版本里对性能会不会有影响?   mysqldump 的用户需要什么权限   mysqldump 支持Where条件  备份评估 阿里云Percona-live 2016-4 基于Innodb物理复制 mysql5.7没有线程池,需要用percona版本mysql才有,percona的定位是做免费的企业版mysql mysql5.6的memcached插件只是提供memcache