📄 数据源operatdatabase.java
字号:
package operator;
import java.sql.*;
import java.io.*;
public class OperatDatabase
{
String sDBDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
String sConnStr = "jdbc:odbc:bbb";//bbb为数据源,连接master数据库
String id="sa";//数据库用户名
String password="sa";//密码
Connection con = null;
ResultSet rs = null;
Statement stmt=null;
//构造函数
public OperatDatabase() {
try {
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundException e) {
System.err.println("conn(): " + e.getMessage());
}
}
public int getLastChar(String strrecv,char chrrecv){
int iRet=0;
int strlength = strrecv.length();
for( int i=0;i<strlength; i++)
{
if(strrecv.charAt(i) == chrrecv)
iRet = i;
}
return iRet;
}
public String IIf(boolean flag,String str1,String str2){
if( flag )
return str1;
else
return str2;
}
/*
*************************************************************************
**模 块 名:backupDatabase
**描 述:备份数据库,返回出错信息,正常恢复,返回""
**调 用:backupDatabase "备份文件名","数据库名"
**参数说明:
** sBackUpfileName 恢复后的数据库存放目录
** sDataBaseName 备份的数据库名
** sIsAddBackup 是否追加到备份文件中
**说 明:引用Microsoft ActiveX Data Objects 2.x Library
**日 期:2006年11月26日
*************************************************************************
*/
public boolean backupDatabase(String sBackUpfileName)
{
String iSql, iReturn;
iSql = "backup database [xsglDatabase] to disk='" + sBackUpfileName + "'";
try
{
con=DriverManager.getConnection(sConnStr,id,password);
stmt=con.createStatement();
stmt.execute(iSql);
}
catch(SQLException ex)
{
System.err.println("con.executeUpdate:"+ ex.getMessage());
return false;
}
return true;
}
/*************************************************************************
**模 块 名:restoreDatabase
**描 述:恢复数据库,返回出错信息,正常恢复,返回""
**调 用:restoreDatabase "备份文件名","数据库名"
**参数说明:
** sDataBasePath 恢复后的数据库存放目录
** sBackupNumber 是从那个备份号恢复
** sReplaceExist 指定是否覆盖已经存在的数据
**说 明:引用Microsoft ActiveX Data Objects 2.x Library
**日 期:2006年11月26日
*************************************************************************
*/
public String restoreDatabase(String sBackUpfileName,String sDataBasePath,String sBackupNumber,boolean sReplaceExist){
String iSql,iReturn,iI;
int iBeg,iEnd;
iSql="";
//得到还原后的数据库存放目录,如果没有指定,存放到SQL SERVER的DATA目录
try
{
con=DriverManager.getConnection(sConnStr,id,password);
stmt=con.createStatement();
if( sDataBasePath.equals("") ){
iSql = "select filename from master..sysfiles";
rs = stmt.executeQuery(iSql);//iRe.Open iSql, iDb, adOpenKeyset, adLockReadOnly;
iSql = rs.getString(0);
rs.close();
sDataBasePath = iSql.substring( 0, iSql.lastIndexOf("\\"));
}
//检查数据库是否存在
if( !sReplaceExist ){
iSql = "select 1 from master..sysdatabases where name='xsglDatabase'";
rs=stmt.executeQuery(iSql);//iRe.Open iSql, iDb, adOpenKeyset, adLockReadOnly
if( rs.next()){
iReturn = "exist";//数据库已经存在!继续操作
rs.close();
}else {
iReturn = "notExist";//恢复失败,数据库不存在!
rs.close();
return iReturn;
}
rs = null;
}
//关闭用户进程,防止其它用户正在使用数据库,导致数据恢复失败
iSql = "select spid from master..sysprocesses where dbid=db_id('xsglDatabase')";
rs=stmt.executeQuery(iSql);
while(rs.next()){
iSql = "kill " + String.valueOf(rs.getInt("spid"));
stmt.execute(iSql);
}
rs.close();
//生成数据库恢复语句
iSql = "restore database [xsglDatabase] from disk='" + sBackUpfileName + "'";
if(sReplaceExist){//是否替换
iSql = iSql + " with REPLACE ";
}else {
iSql = iSql+"";
}
stmt.execute(iSql);//iDb.Execute iSql;
iReturn = "sucess";//恢复成功
return iReturn;
}
catch(SQLException sx)
{
System.err.println("con.executeUpdate:"+ sx.getMessage());
iReturn="failer";//恢复失败
return iReturn;
}
}
/**
*功能:关闭连接
*
*/
public void close()
{
try{
if(con!=null)
{
con.close();
}
}
catch(SQLException ex)
{
System.err.println("con.executeDelete: "+ ex.getMessage());
}
}
/*
public static void main(String[] args)throws SQLException{
OperatDatabase test=new OperatDatabase();
ResultSet rst=test.executeQuery("select * from dbo.shujukubeifen");
while(rst.next()){
System.out.print(rst.getString("backupId"));
System.out.print(rst.getString("backupName"));
System.out.print(rst.getString("backupTime"));
}
}*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -