java基础 数据库操作3之数据库恢复
上一篇写了数据的备份,本篇将写数据库的恢复操作
思想:备份文件中写入的是将数据库表转换为sql后的语句,所以备份就只需将备份文件中的sql语句执行即可
//数据库恢复
public static void restore(String filepath){
File sqlFile=new File(filepath); //创建备份文件的对象
Statement smt=null; //建立sql接口
FileInputStream fis=null; //创建文件输入字节流
InputStreamReader lsr=null; //字节流转为字符流
BufferedReader br=null; //缓冲输入字符流
try {
fis=new FileInputStream(sqlFile);
lsr=new InputStreamReader(fis);
br=new BufferedReader(lsr);
String readStr=null;
while((readStr=br.readLine())!=null){ //缓存字符串,保存备份文件中一行的内容
if(!"".equals(readStr.trim())){ //逐行读取备份文件中的内容
smt=conn.createStatement(); //创建sql语句直接接口
int count=smt.executeUpdate(readStr); //执行sql语句
smt.close(); //关闭接口
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{ //按倒序依次关闭IO流
if(br!=null){
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(lsr!=null){
try {
lsr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(fis!=null){
try {
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
流程
1.创建文件对象
2.创建Statement接口
3.创建IO流
4.创建循环,读取文件中的内容
4.1判断是否为空
4.2不为空就创建sql语句的连接
4.3关闭接口
5.按创建IO流的倒序依次关闭IO流