JDBC 备份还原数据库


jdbcTest.java

package 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);
      }
      
      
	
	
}


main.java

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;
					}
			    	
				}
          		
	}

}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值