⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 databackupframe.java

📁 一个使用java 写的进销存代码 使用了ejb 等技术 是学习j2ee的好
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
      }
      //取得文件路径
      String pathName = jTextField1.getText().trim();
      if(pathName.length() == 0){
        JOptionPane.showMessageDialog(null, "请选择备份文件目录.");
        return;
      }
      //清空信息列表框的内容
      listData3.clear();
      String tableName = "";
      for(int i = 0; i < selectedIndexes.length; i++){
        //取得选择数据表的名字
        tableName = (String)listData1.getElementAt(selectedIndexes[i]);
        try{
          //备份数据表
          backupTable(tableName, pathName);
        }catch(Exception ex){
          ex.printStackTrace();
        }
      }
    //单击备份所有数据表按钮的处理代码
    }else if(actionCommand.equals("backupAllTables")){
      if(listData1.size() == 0){
        JOptionPane.showMessageDialog(null, "请显示数据表.");
        return;
      }
      //取得文件路径
      String pathName = jTextField1.getText().trim();
      if(pathName.length() == 0){
        JOptionPane.showMessageDialog(null, "请选择备份文件目录.");
        return;
      }
      //清空信息列表框的内容
      listData3.clear();
      String tableName = "";
      for(int i = 0; i < listData1.size(); i++){
        //取得选择数据表的名字
        tableName = (String)listData1.getElementAt(i);
        try{
          //备份数据表
          backupTable(tableName, pathName);
        }catch(Exception ex){
          ex.printStackTrace();
        }
      }
    //单击恢复选择文件按钮的处理代码
    }else if(actionCommand.equals("restoreSelectedFiles")){
      //取得文件路径
      String pathName = jTextField1.getText().trim();
      if(pathName.length() == 0){
        JOptionPane.showMessageDialog(null, "请选择备份文件目录.");
        return;
      }
      int[] selectedIndexes = jList2.getSelectedIndices();
      if(selectedIndexes.length == 0){
        JOptionPane.showMessageDialog(null, "请选择备份文件.");
        return;
      }
      if(listData1.size() == 0){
        JOptionPane.showMessageDialog(null, "请显示数据表.");
        return;
      }
      //清空信息列表框的内容
      listData3.clear();
      String fileName = "";
      for(int i = 0; i < selectedIndexes.length; i++){
        fileName = (String)listData2.getElementAt(selectedIndexes[i]);
        //根据文件名取得数据表的名字
        String tableName = fileName.substring(0, fileName.indexOf(".dat"));
        //检查数据表名字是否存在
        if(listData1.indexOf(tableName) == -1){
          JOptionPane.showMessageDialog(null, fileName + "文件的数据表在数据库不存在,"
                                        + "不可以进行恢复操作.");
          continue;
        }
        try{
          restoreTable(fileName, tableName, pathName);
        }catch(Exception ex){
          ex.printStackTrace();
        }
      }
    //单击恢复全部文件按钮的处理代码
    }else if(actionCommand.equals("restoreAllFiles")){
      //取得文件路径
      String pathName = jTextField1.getText().trim();
      if(pathName.length() == 0){
        JOptionPane.showMessageDialog(null, "请选择备份文件目录.");
        return;
      }
      if(listData2.size() == 0){
        JOptionPane.showMessageDialog(null, "请显示备份文件.");
        return;
      }
      if(listData1.size() == 0){
        JOptionPane.showMessageDialog(null, "请显示数据表.");
        return;
      }
      //清空信息列表框的内容
      listData3.clear();
      String fileName = "";
      for(int i = 0; i < listData2.size(); i++){
        fileName = (String)listData2.getElementAt(i);
        //根据文件名取得数据表的名字
        String tableName = fileName.substring(0, fileName.indexOf(".dat"));
        //检查数据表名字是否存在
        if(listData1.indexOf(tableName) == -1){
          JOptionPane.showMessageDialog(null, fileName + "文件的数据表在数据库不存在,"
                                        + "不可以进行恢复操作.");
          continue;
        }
        try{
          restoreTable(fileName, tableName, pathName);
        }catch(Exception ex){
          ex.printStackTrace();
        }
      }
    }else if(actionCommand.equals("exit")){
      exit();
    }
  }
  //将数据表数据保存在文件的方法
  public void backupTable(String tableName, String pathName) throws Exception{
    String[][] data = null;
    //创建文件类
    File file = new File(pathName + "\\" + tableName + ".dat");
    if(file.isFile()){
      //取得信息确认框的返回值
      int actionInt = JOptionPane.showConfirmDialog(null, tableName + ".dat"
          + "文件已存在,是否覆盖该文件?", "信息确认框",
          JOptionPane.YES_NO_OPTION, JOptionPane.INFORMATION_MESSAGE);
      //如果单击否按钮,不进行覆盖操作
      if(actionInt == JOptionPane.NO_OPTION){
        listData3.addElement(tableName + ".dat文件已存在,不进行覆盖操作.");
        return;
      }
    }
    //创建文件写出类
    FileWriter writer = new FileWriter(pathName + "\\" + tableName + ".dat");
    //取得数据表的数据
    data = stockManagementData.getDataByTableName(tableName);
    for (int row = 0; row < data.length; row++) {
      for (int col = 0; col < data[0].length; col++) {
        //如果字段值为空值,转换为null字符串,如果字段值的长度为度,加入一个空格
        if(data[row][col] == null){
          data[row][col] = "null";
        }else if(data[row][col].length() == 0){
          data[row][col] = " ";
        }
        if(col == data[0].length -1){
          //\n是换行符
          writer.write(data[row][col] + "\n");
        }else{
          //\t是水平制表符
          writer.write(data[row][col] + "\t");
        }
      }
    }
    //关闭文件写出类
    writer.close();
    listData3.addElement(tableName + "数据表成功备份,数据表的保存路径是" + pathName + ".");
    //将用户备份数据表信息写入日志数据表
    stockManagementData.createUserLog("数据备份窗口", tableName + "数据表备份操作",
                                      user.getUserName());

  }
  //将文件数据写入数据表的方法
  public void restoreTable(String fileName, String tableName, String pathName) throws
      Exception {
    //创建数组
    String[][] data = null;
    File inFile = new File(pathName + "\\" + fileName);
    //读入文件
    FileReader reader = new FileReader(inFile);
    //创建集合类
    Vector vector = new Vector();
    BufferedReader bufferedReader = new BufferedReader(reader);
    while (bufferedReader.ready()) {
      //读入一行内容
      vector.add(bufferedReader.readLine());
    }
    if (vector.size() > 0) {
      //取得行总数
      int rowLength = vector.size();
      String tempStr = (String) vector.get(0);
      StringTokenizer stringToken = new StringTokenizer(tempStr, "\t");
      //取得列总数
      int colLength = stringToken.countTokens();
      //根据行和列的总数创建内容数组
      data = new String[rowLength][colLength];
      for (int row = 0; row < rowLength; row++) {
        stringToken = new StringTokenizer( (String) vector.get(row), "\t");
        for (int col = 0; col < colLength; col++) {
          tempStr = stringToken.nextToken();
          //取代/n字符串
          tempStr.replace('\n', ' ');
          tempStr = tempStr.trim();
          //向数组写入内容
          data[row][col] = tempStr;
        }
      }
      //将数组数据写入数据表
      stockManagementData.setDataByTableName(tableName, data);
      listData3.addElement(fileName + "文件的数据已写入数据表" + tableName + ".");
      //将用户恢复数据表信息写入日志数据表
      stockManagementData.createUserLog("数据备份窗口", tableName + "数据表恢复操作",
                                        user.getUserName());
    }
    else {
      listData3.addElement(fileName + "文件没有数据.");
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -