JDBC 備份還原資料庫
阿新 • • 發佈:2019-02-19
jdbcTest.java
main.javapackage test; import java.sql.Connection; import java.sql.SQLException; import org.junit.Test; import service.JdbcUtil; import service.XmlUtil; public class JdbcTest { @Test public void testConnection() throws SQLException { Connection conn = JdbcUtil.getConnection("SQLServer", "Test", "sa", "016051"); JdbcUtil.transformDataBase(conn); XmlUtil.Database2Xml(JdbcUtil.getDataBase()); JdbcUtil.release(conn, null, null); } public static void main(String [] args) throws SQLException { Connection conn = JdbcUtil.getConnection("SQLServer", "Test", "sa", "016051"); JdbcUtil.transformDataBase(conn); XmlUtil.Database2Xml(JdbcUtil.getDataBase()); JdbcUtil.release(conn, null, null); } @Test public void testXML2Database() throws SQLException{ Connection conn = JdbcUtil.getConnection("SQLServer", "sa", "016051"); JdbcUtil.createDatabase("H:\\Java\\JavaEE\\DBMSRecovery\\Backups\\20140716172255.xml", conn); JdbcUtil.release(conn, null, null); } }
package main; import java.io.File; import java.sql.Connection; import java.sql.SQLException; import service.JdbcUtil; import service.XmlUtil; public class Main { public static void main(String[] args) { /*備份命令格式: * Java –jar db.jar -dbType (SQLServer || mysql) -U (uesrName) -P (password) -dbName (dbname) * 恢復命令格式: * Java –jar db.jar -dbType (SQLServer || mysql) -U (uesrName) -P (password) -path (filepath) * */ String dbType=null,uesrName=null,password=null, dbname=null,filepath=null; //解析命令列引數 for (int i = 0; i < args.length; i=i+2) { if (args[i].equals("-dbType")) { dbType = args[i+1]; } if (args[i].equals("-U")) { uesrName = args[i+1]; } if (args[i].equals("-P")) { password = args[i+1]; } if (args[i].equals("-path")) { filepath = args[i+1]; } if (args[i].equals("-dbName")) { dbname = args[i+1]; } } if (dbname != null) { Connection conn; try { conn = JdbcUtil.getConnection(dbType, dbname, uesrName,password ); JdbcUtil.transformDataBase(conn); XmlUtil.Database2Xml(JdbcUtil.getDataBase()); JdbcUtil.release(conn, null, null); } catch (SQLException e) { System.out.println("資料庫解析備份出現錯誤:"+e.toString()); return; } }else if (filepath != null) { Connection conn; try { conn = JdbcUtil.getConnection(dbType, uesrName, password); File file = new File(filepath); if (!file.exists()) { System.out.println("XML路徑不存在,請重試"); return; } JdbcUtil.createDatabase(filepath, conn); JdbcUtil.release(conn, null, null); } catch (Exception e) { System.out.println("資料庫解析匯入出現錯誤:"+e.toString()); return; } } } }