backup_recover_db.java~15~

来自「使用Java语言开发的数据库课程设计——医药管理信息系统。」· JAVA~15~ 代码 · 共 93 行

JAVA~15~
93
字号
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.SQLException;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.io.File;


public class Backup_Recover_DB
{
    String Driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
    String conURL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=CASY";
    String Username = "sa";
    String Password = "111111";
    public void Backup_DB()
    {
        JFileChooser chooser = new JFileChooser();
        FileFilter filter = new FileNameExtensionFilter("数据库备份文件 (*.bak)","bak");
        chooser.setFileFilter(filter);
        //File file = chooser.getSelectedFile();
        //if(file.exists())
        //{
        //    ask = JOptionPane.showConfirmDialog(null, "文件已经存在,是否覆盖?", "请慎重考虑!",
        //                                        JOptionPane.INFORMATION_MESSAGE);
        //    if (ask == JOptionPane.NO_OPTION)
        //        return;
        //}
        int returnVal = chooser.showSaveDialog(null);
        if (returnVal == JFileChooser.APPROVE_OPTION)
        {
            int ask =0;
            String save_path = chooser.getSelectedFile().getPath();
            String backup_name = chooser.getSelectedFile().getName();
            if(chooser.getSelectedFile().exists())
            {
                ask = JOptionPane.showConfirmDialog(null, "文件已经存在,是否覆盖?", "请慎重考虑!",
                        JOptionPane.INFORMATION_MESSAGE);
                if (ask == JOptionPane.NO_OPTION)
                    return;
            }
            else
            {
                new Load_DB_Driver();
                String backup = "backup database CASY to disk ='" + save_path +
                                "' with format, name = '" + backup_name + "'";
                DB_bak_rec(backup);
            }
        }
    }
    public void Recover_DB()
    {
        int choice = JOptionPane.showConfirmDialog(null,"真的要恢复数据库吗?这个操作将会用旧的数据覆盖现在的数据!!","请慎重考虑!",JOptionPane.INFORMATION_MESSAGE);
        if(choice==JOptionPane.NO_OPTION)
            return;
        else
        {
            JFileChooser chooser = new JFileChooser();
            FileFilter filter = new FileNameExtensionFilter("数据库备份文件", "bak");
            chooser.setFileFilter(filter);
            int returnVal = chooser.showSaveDialog(null);
            if (returnVal == JFileChooser.APPROVE_OPTION)
            {
                String path = chooser.getSelectedFile().getPath();
                new Load_DB_Driver();
                String recover =
                        "USE master RESTORE DATABASE CASY  FROM disk = '"
                        + path + "'";
                DB_bak_rec(recover);
            }
        }
    }

    public void DB_bak_rec(String sql)
    {
        try
           {
               Connection con = DriverManager.getConnection(conURL,Username,Password);
               Statement s= con.createStatement();
               s.executeUpdate(sql);
               JOptionPane.showMessageDialog(null, "☆ 操作成功 !! ☆", "系统消息",JOptionPane.WARNING_MESSAGE);
               s.close();
               con.close();
           }
           catch(SQLException ex)
           {
               JOptionPane.showMessageDialog(null,"SQLException:" + ex.getMessage(),"警告!",JOptionPane.WARNING_MESSAGE);
           }
    }
}

⌨️ 快捷键说明

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