「java数据还原」java怎么还原界面

博主:adminadmin 2023-01-13 22:15:07 406

今天给各位分享java数据还原的知识,其中也会对java怎么还原界面进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

如何使用java程序备份和恢复MySql数据库?

java用开源的ssh jar包连接到b服务器执行备份/恢复命令,同样通过命令也可以获取到备份的文件信息,恢复数据库也是一样的,通过命令把文件传输到b服务器,通过命令进行还原

JAVA 数据恢复

通过jdbc可以实现,但是原理也是调用数据库里面的功能来实现了。。

JAVA程序怎样实现Oracle数据库备份和还原

oracle的备份和还原可以用命令行来实现

备份 exp system/manager@TEST file=d:\daochu.dmp full=y

还原 imp system/manager@TEST file=d:\daochu.dmp

将上面的备份、还原命令可以新建成bat文件。然后在java中可以运行bat文件

Runtime.getRuntime().exec("cmd.exe   /C   start   D:\\test.bat");

这样就实现了oracle的备份与还原。当然这里只是提供一个大概的思路,实际运用中可能需要备份某些数据,还原到其他数据库等。

如何用Java实现MySQL数据库的备份和恢复

MySQL的一些前台工具是有备份恢复功能的,可是如何在我们的应用程序中实现这一功能呢?本文提供了示例代码来说明如何使用Java代码实现MySQL数据库的备份恢复。

本次实现是使用了MySQL数据库本身提供的备份命令mysqldump和恢复命令mysql,在java代码中通过从命令行调用这两条命令来实现备份和恢复。备份和恢复所使用的文件都是sql文件。

本代码是参照网上某网友提供的源码完成的。

[java] view plaincopy

package xxx.utils;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.OutputStreamWriter;

import java.io.PrintWriter;

import java.io.UnsupportedEncodingException;

/**

* MySQL数据库的备份与恢复 缺陷:可能会被杀毒软件拦截

*

* @author xxx

* @version xxx

*/

public class DatabaseBackup {

/** MySQL安装目录的Bin目录的绝对路径 */

private String mysqlBinPath;

/** 访问MySQL数据库的用户名 */

private String username;

/** 访问MySQL数据库的密码 */

private String password;

public String getMysqlBinPath() {

return mysqlBinPath;

}

public void setMysqlBinPath(String mysqlBinPath) {

this.mysqlBinPath = mysqlBinPath;

}

public String getUsername() {

return username;

}

public void setUsername(String username) {

this.username = username;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public DatabaseBackup(String mysqlBinPath, String username, String password) {

if (!mysqlBinPath.endsWith(File.separator)) {

mysqlBinPath = mysqlBinPath + File.separator;

}

this.mysqlBinPath = mysqlBinPath;

this.username = username;

this.password = password;

}

/**

* 备份数据库

*

* @param output

* 输出流

* @param dbname

* 要备份的数据库名

*/

public void backup(OutputStream output, String dbname) {

String command = "cmd /c " + mysqlBinPath + "mysqldump -u" + username

+ " -p" + password + " --set-charset=utf8 " + dbname;

PrintWriter p = null;

BufferedReader reader = null;

try {

p = new PrintWriter(new OutputStreamWriter(output, "utf8"));

Process process = Runtime.getRuntime().exec(command);

InputStreamReader inputStreamReader = new InputStreamReader(process

.getInputStream(), "utf8");

reader = new BufferedReader(inputStreamReader);

String line = null;

while ((line = reader.readLine()) != null) {

p.println(line);

}

p.flush();

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

if (reader != null) {

reader.close();

}

if (p != null) {

p.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

/**

* 备份数据库,如果指定路径的文件不存在会自动生成

*

* @param dest

* 备份文件的路径

* @param dbname

* 要备份的数据库

*/

public void backup(String dest, String dbname) {

try {

OutputStream out = new FileOutputStream(dest);

backup(out, dbname);

} catch (FileNotFoundException e) {

e.printStackTrace();

}

}

/**

* 恢复数据库

*

* @param input

* 输入流

* @param dbname

* 数据库名

*/

public void restore(InputStream input, String dbname) {

String command = "cmd /c " + mysqlBinPath + "mysql -u" + username

+ " -p" + password + " " + dbname;

try {

Process process = Runtime.getRuntime().exec(command);

OutputStream out = process.getOutputStream();

String line = null;

String outStr = null;

StringBuffer sb = new StringBuffer("");

BufferedReader br = new BufferedReader(new InputStreamReader(input,

"utf8"));

while ((line = br.readLine()) != null) {

sb.append(line + "/r/n");

}

outStr = sb.toString();

OutputStreamWriter writer = new OutputStreamWriter(out, "utf8");

writer.write(outStr);

writer.flush();

out.close();

br.close();

writer.close();

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 恢复数据库

*

* @param dest

* 备份文件的路径

* @param dbname

* 数据库名

*/

public void restore(String dest, String dbname) {

try {

InputStream input = new FileInputStream(dest);

restore(input, dbname);

} catch (FileNotFoundException e) {

e.printStackTrace();

}

}

public static void main(String[] args) {

Configuration config = HibernateSessionFactory.getConfiguration();

String binPath = config.getProperty("mysql.binpath");

String userName = config.getProperty("connection.username");

String pwd = config.getProperty("connection.password");

DatabaseBackup bak = new DatabaseBackup(binPath, userName, pwd);

bak.backup("c:/ttt.sql", "ttt");

bak.restore("c:/ttt.sql", "ttt");

}

}

最后的main方法只是一个简单的使用方法的示例代码。

本人所做的项目是使用了hibernate的,而这里需要提供MySQL的bin路径和用户名、密码,而hibernate.cfg.xml中本身就是需要配置数据库的用户名和密码,所以我把MySQL的bin路径也直接配置到了这个文件里面,也不需要创建专门的配置文件,不需要写读取配置文件的接口了。

如果不明白,可以去看hibernate.cfg.xml的说明,里面是可以配置其他的property的

北大青鸟java培训:代码还原中数据类型的表现?

对于程序员来说,一般都可以通过代码的逆向还原来实现对一款软件的结构解析的。

下面我们就一起来了解一下,在代码还原中的数据类型都有哪些表现形式。

一丶简介代码还原例子一:我们很多人都学习过汇编.但是汇编的核心知识就是我能看的懂.有人拿汇编去做外挂.比如我去追偏移.看着视频去做.然后换一个游戏依然这样.但是终有一天,你可能发现没意思了.因为这些知识都是死的.比如我们想看游戏中,这段代码做了什么事情.这个时候就需要将汇编转为高级代码查看了.IDA的F5插件.一般能做到.但是很多是做不到的.比如游戏中.这段代码你找到一个对象+多少偏移是什么什么功能.但是会逆向的人.这段代码抠出来.转为高级代码.一看.原来这个意思.+多少是什么作用.另外还实现了什么功能.这个就是核心技术了.为什么别人的外挂功能比较多.你的比较少.其核心就在这里.例子二:算法逆向,如一个软件.让你追出注册码.你可能就爆破.但是如果你能把它算法逆出来.那么是不是一提升了自己,二,自己可以写注册机专门为这个程序生成注册码了.例子三:如果你是为公司工作.可能某一天,公司需要你进行逆向.发现xx软件的一个功能比较好.此时你需要怎么办.完整的根据汇编去逆向出来这个功能.并且让公司去做出这个功能.这个也是一个很好的例子.二丶代码还原中的数据类型表现形式上面说了很多了,那么真正的开始篇幅讲解.1.整数类型C++中整数的基本数据类型有三种,intlongshort.在VC6.0中,intlong所占内存都是4字节.short两个字节.以16进制为例intlong分别就是4个字节.short两个字节.一个字节是8位.2.无符号整数在内存中,无符号整数是用来表示数值的.如果32位下.那么取值范围是0x00000000~0xFFFFFFF10进制:0~4294967295,因为无符号数,那么高位就是0填充.所以重庆北大青鸟发现表示数值比较大.3.有符号整数有符号整数跟上面无符号整数一样.只不过高位用来表示符号位,其余低位表示数值.这样有符号的整数.表示的数值就只有31位了.范围则是0x80000000~0x7FFFFFFF转为十进制:-2147483648~2147483647

java数据还原的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java怎么还原界面、java数据还原的信息别忘了在本站进行查找喔。