在原来的系统之上增加了两个新的功能,备份数据和恢复备份:
下面是两个功能的具体实现方法:
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