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

📄 dbbackup.java

📁 数据库备份程序示例
💻 JAVA
字号:
//Copyright 1998 John Wiley and Sons, Inc.import java.io.*;import java.util.*;import java.net.*;import java.sql.*; public class DBBackup extends Object{    Connection connection;    Statement statement;    String xmlFile;    String tableToSave;        public DBBackup(String url, String driverName,                       String user, String passwd,                       String file, String table)    {        try        {            //load the driver            Class.forName(driverName);            connection =                     DriverManager.getConnection(url, user, passwd);                                statement = connection.createStatement();                        xmlFile = file;            tableToSave = table;        }        catch (Exception exp)        {            System.out.println("Error connecting: "+exp);        }         }    public void performBackup()    {        DatabaseMetaData dbMetaData;        ResultSet tables=null;        ResultSet resultSet=null;        ResultSetMetaData metaData;        Vector allTables = new Vector();        PrintWriter out;        String tableName,colName;        int curType;        int i,max;        byte[] rawData;        int j,rawMax;        int k,maxTables;        String data;                try        {            out = new PrintWriter(                                  new BufferedWriter(                                  new FileWriter(xmlFile)));                        if(tableToSave == null)            {                dbMetaData = connection.getMetaData();                tables = dbMetaData.getTables("","",null,null);                            while(tables.next())                {                    allTables.addElement(tables.getString("TABLE_NAME"));                    System.out.println("Adding "+tables.getString("TABLE_NAME")+" to table list.");                }                            tables.close();            }            else            {                allTables.addElement(tableToSave);            }                        maxTables = allTables.size();                        out.println("<?xml version=\"1.0\"?>");            out.println("<!DOCTYPE jdbc SYSTEM \"jdbc.dtd\">");            out.println();            out.println("<DATABASE>");                        for(k=0;k<maxTables;k++)            {                tableName = (String) allTables.elementAt(k);                                out.println("<TABLE NAME=\""+tableName+"\">");                                resultSet = statement.executeQuery("select * from "                                                         +tableName);                                                                         metaData = resultSet.getMetaData();                max = metaData.getColumnCount();                while(resultSet.next())                {                    out.println("<ROW>");                                        for(i=1;i<=max;i++)                    {                        curType = metaData.getColumnType(i);                        colName = metaData.getColumnLabel(i);                        switch(curType)                        {                            case Types.CHAR:                            case Types.VARCHAR:                            case Types.LONGVARCHAR:                            case Types.BINARY:                            case Types.VARBINARY:                            case Types.LONGVARBINARY:                                data = resultSet.getString(i);                                                                if(data == null) data = "";                                else data = URLEncoder.encode(data);                                                                out.print("<TEXT NAME=\""+colName+"\">");                                out.print(data);                                out.println("</TEXT>");                                break;                            case Types.TINYINT:                            case Types.SMALLINT:                            case Types.INTEGER:                            case Types.BIGINT:                                out.print("<NUMERIC NAME=\""+colName+"\">");                                out.print(resultSet.getLong(i));                                out.println("</NUMERIC>");                                break;                                                            case Types.FLOAT:                            case Types.DOUBLE:                                out.print("<NUMERIC NAME=\""+colName+"\">");                                out.print(resultSet.getDouble(i));                                out.println("</NUMERIC>");                                break;                            case Types.DATE:                                out.print("<TEXT NAME=\""+colName+"\">");                                out.print(resultSet.getDate(i));                                out.println("</TEXT>");                                break;                            case Types.TIME:                                out.print("<TEXT NAME=\""+colName+"\">");                                out.print(resultSet.getTime(i));                                out.println("</TEXT>");                                break;                            case Types.TIMESTAMP:                                out.print("<TEXT NAME=\""+colName+"\">");                                out.print(resultSet.getTimestamp(i));                                out.println("</TEXT>");                                break;                            default:                                //do nothing                        }                    }                                        out.println("</ROW>");                }                resultSet.close();                                out.println("</TABLE>");            }                    out.println("</DATABASE>");            out.close();        }        catch (Exception exp)        {            System.out.println("Error performing backup: "+exp);        }        }    public void close()    {        try        {            statement.close();            connection.close();        }        catch (Exception exp)        {            System.out.println("Error closing DB connection: "+exp);            exp.printStackTrace();        }        }        public static void main(String args[])    {        String url=null,driver=null,user=null;        String password=null,file=null,table=null;        DBBackup backup;        int i,max;                if ((args != null) && (args.length > 1))         {            max = args.length;                        for (i = 0;i < max;i++)            {                if (args[i].equals("-url"))                     url = args[++i];                else if (args[i].equals("-driver"))                     driver = args[++i];                else if (args[i].equals("-user"))                     user = args[++i];                else if (args[i].equals("-password"))                     password = args[++i];                else if (args[i].equals("-file"))                     file = args[++i];                else if (args[i].equals("-table"))                     table = args[++i];            }        }                if((url == null)||(driver == null)||(file == null))        {            System.out.println("usage: DBBackup"                                +" -url url"                                +" -driver driverClassName"                                +" [-user user]"                                +" [-password pass]"                                +" -file XMLFileName"                                +" [-table tableName]");                                            System.exit(0);        }                backup = new DBBackup(url,driver,user,password,file,table);        backup.performBackup();        backup.close();    }}

⌨️ 快捷键说明

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