selon 发表于 2006-11-13 09:44:38

给td备份的java程序

执行后
会在td所在机器留一份、本机留一份、ftp服务器留一份

初学java
实现的比较麻烦
有待改进

hadywei 发表于 2006-11-13 11:30:35

看过了,发现几个问题:
1。这个主要是针对td的project使用sqlserver数据库的,对于sybase或者oracle恐怕不行
2。有一些特定的参数,是随着不同的使用者而变化的,比如
   String FileName = new String("2006111102");这一句里的日期是不是使用者想要备份哪天的数据库而变化的
   String userPwd="passwd"这个密码应该是个人sqlserver中用户sa的密码
   String sql = "backup database test_group_cef_test_dbtodisk = 'c:\\sun\\"+FileName+"' "; 这里的路径也应该是因人
   myftp.connect("ftpserver'ip",21,"name","passwd")而异的应该也是根据实际而不同


lzh 还有什么补充的吗?

selon 发表于 2006-11-13 14:05:57

谢谢指点
刚学java
闲的 就给自己出了个题目
上面的程序只是来验证方案的可行性
实际操作起来甚至比手工备份还要麻烦

正在尝试做个有界面的应用程序
相关参数就好处理了

对你的建议再次表示感谢

hadywei 发表于 2006-11-13 14:13:19

原帖由 selon 于 2006-11-13 14:05 发表
谢谢指点
刚学java
闲的 就给自己出了个题目
上面的程序只是来验证方案的可行性
实际操作起来甚至比手工备份还要麻烦

正在尝试做个有界面的应用程序
相关参数就好处理了

对你的建议再次表示感谢


不用谢,共同研究嘛,不过如果真的能设计出有界面的应用程序,就造福大家了,可以帮你测试哦

songfun 发表于 2006-11-15 15:24:19

呵呵,帮楼主粘贴代码如何?
package Mypackage;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.RandomAccessFile;
import java.sql.*;
import org.jibble.simpleftp.SimpleFTP;
import jcifs.smb.*;
public class BackupSql{
public static void main(String args[]){
    String FileName = new String("2006111102");
   
    String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";      
      try{
       Class.forName(driver).newInstance();      
       System.out.println("load sqldrivice successfull!!");
      }catch(Exception e)
      {
       System.out.println("Can't load!!");
      }
    try{
   String dbURL="jdbc:microsoft:sqlserver://sqlserver's ip:1433;DatabaseName=databasename"; //the sqlserver'ip &the databasename
   String userName="sa";
   String userPwd="passwd"; //dbo'passwd
   Connection con;
   con=DriverManager.getConnection(dbURL,userName,userPwd);      
   String sql = "backup database test_group_cef_test_dbtodisk = 'c:\\sun\\"+FileName+"' ";
   PreparedStatement stmt = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
   stmt.execute();
   System.out.println("backup successfull!!");
    }catch(Exception e){
       e.printStackTrace();
       System.out.println("backup failed!!");
    }   
   try{
   SimpleFTP myftp = new SimpleFTP();
   File fi = new File("D:\\TDbackup\\"+FileName);
   RandomAccessFile getFile = new RandomAccessFile(fi,"r");
   String ch;   
   myftp.connect("ftpserver'ip",21,"name","passwd"); //login the ftpserver
   myftp.bin();
   myftp.cwd("upload/sun");
   System.out.println("uploading wait...");
   BufferedReader in = new BufferedReader(new InputStreamReader(new SmbFileInputStream("smb://administrator:leadtone130@192.168.10.130/sun/"+FileName)));
   while ((ch=in.readLine())!=null) {
               getFile.writeBytes(ch);
         }
         myftp.stor(new File("D:\\TDbackup\\"+FileName));
   System.out.println("upload successfull!!");
   myftp.disconnect();
   }catch (IOException ex){
    ex.printStackTrace();
    System.out.println("upload failed!!");
      }

   }
}

selon 发表于 2006-11-16 13:03:47

谢谢 呵呵
有界面的东东已经做出来了(只对sql2000备份)

可是还没生成可执行文件(暂时还不会sdlkfj7 )

是这个样子的

(结果的显示有问题 唉 失败)

[ 本帖最后由 selon 于 2006-11-16 13:26 编辑 ]

hadywei 发表于 2006-11-16 15:10:08

原帖由 selon 于 2006-11-16 13:03 发表
谢谢 呵呵
有界面的东东已经做出来了(只对sql2000备份)

可是还没生成可执行文件(暂时还不会sdlkfj7 )

是这个样子的

(结果的显示有问题 唉 失败)

不错哦,不过也不用着急,我可以给你测试
页: [1]
查看完整版本: 给td备份的java程序