java 备份sqlserver部分表_如何利用JAVA实现SQLserver数据库的数据备份与数据还原?...

##如何利用JAVA实现SQLserver数据库的数据备份与数据还原?

(以stu学生类为例)

-需要四个包

·       List item

·       ui:主窗体

·       dao:删除、添加、模糊查询功能

·       util:DBHelper类连接数据库

·       entity:stu学生实体类(注:实体类也就是序列化的对象必须实现Serializable接口)(implements Serializable)、

-数据备份思路:

·       打开文件选择器,选择想要将数据备份到的文件

·       创建File对象获取选中的文件

·       创建输出流,将file对象放入文件路径处

·       包装过滤留

·       写出数据,注:因放Arraylist集合对象到数据处

·       调用showinfo方法给表格重新绑定数据

·       关闭流

-数据还原思路:

·       打开文件选择器,选择想要将数据还原到的文件

·       创建File对象获取选中的文件

·       创建输入流,将file对象放入文件路径处

·       包装过滤流

·       读取数据,进行强转

·       调用dao类,循环添加功能,将数据添加还原到文件中去

·       调用showinfo方法给表格重新绑定数据

·       关闭流

-一键删除所有数据:调用dao类中的删除功能(delete tb_stu)

接下来是代码展示

package ui;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.ObjectInputStream;

import java.io.ObjectOutputStream;

import java.sql.Date;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Vector;

import javax.swing.jbutton;

import javax.swing.JComboBox;

import javax.swing.JFileChooser;

import javax.swing.JFrame;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.JTextField;

import javax.swing.table.DefaultTableModel;

import dao.Stu_Dao;

import entity.Stu;

public class Index_ui extends JFrame{

//上

JPanel jp1=new JPanel();

JComboBox jcb=new JComboBox<>();//下拉框

JTextField jtf=new JTextField(20);//文本框

jbutton jbxz=new jbutton("查询");//查询按钮

//中

JTable jt=new JTable();

JScrollPane jsp=new JScrollPane(jt);//滚动面板

DefaultTableModel dtm=new DefaultTableModel();//设置表格

//下

JPanel jp2=new JPanel();

jbutton jbbf=new jbutton("文件数据备份");

jbutton jbhy=new jbutton("文件数据还原");

jbutton jbsc=new jbutton("一键删除数据");

//创建file对象

File file=null;

public Index_ui() {

this.setTitle("主窗体");

this.setSize(500, 500);

this.setDefaultCloseOperation(3);

this.setLocationRelativeTo(null);

//上

jp1.add(jcb);

jcb.addItem("编号");

jcb.addItem("姓名");

jcb.addItem("性别");

jcb.addItem("年龄");

jcb.addItem("地址");

jp1.add(jtf);

jp1.add(jbxz);

//中

jt.setModel(dtm);

dtm.addColumn("编号");

dtm.addColumn("姓名");

dtm.addColumn("性别");

dtm.addColumn("年龄");

dtm.addColumn("地址");

//绑定数据

showinfo("sid", "");

//下

jp2.add(jbbf);

jp2.add(jbhy);

jp2.add(jbsc);

//给文件备份按钮添加事件

jbbf.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

//调用dao类中的模糊查询,讲数据放入集合

ArrayList li=new Stu_Dao().selete("sid", "");

源码交易:http://jy.iis7.com/supply7/

//打开文件选择器

JFileChooser jtc=new JFileChooser();

jtc.showDialog(null, "请选择保存文件");

//选中file对象

file=jtc.getSelectedFile();

if(file!=null) {

try {

//创建输出流

FileOutputStream fos=new FileOutputStream(file);

//包装过滤流

ObjectOutputStream oos=new ObjectOutputStream(fos);

//写出数据

oos.writeObject(li);

JOptionPane.showMessageDialog(null, "数据备份成功");

//重新绑定数据

showinfo("sid", "");

//关闭流

fos.close();

oos.close();

} catch (Exception e2) {

e2.printStackTrace();

}

}

}

});

//给一键删除数据按钮添加方式

jbsc.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

//调用dao类

Stu_Dao dao=new Stu_Dao();

//判断是否删除

int i=JOptionPane.showConfirmDialog(null, "您确定要删除吗?");

if(i==0) {

//调用dao类中的删除,判断是否删除成功

if(dao.delete()>0) {

JOptionPane.showMessageDialog(null, "删除成功");

//重新绑定数据

showinfo("sid", "");

}else {

JOptionPane.showConfirmDialog(null, "删除失败");

}

}

}

});

//给文件数据还原按钮添加事件

jbhy.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

try {

//文件选择器

JFileChooser jfc=new JFileChooser();

jfc.showDialog(null, "请选择数据");

//将选中的文件给file对象

File file=jfc.getSelectedFile();

//创建输入流

FileInputStream fis=new FileInputStream(file);

//包装过滤流

ObjectInputStream ois=new ObjectInputStream(fis);

//读取数据

ArrayList like=(ArrayList)ois.readObject();//强转

Stu_Dao dao=new Stu_Dao();

for (Stu stu : like) {

dao.addstu(stu);

}

JOptionPane.showMessageDialog(null, "数据还原成功");

//重新绑定数据

showinfo("sid", "");

//关闭流

fis.close();

ois.close();

} catch (Exception e2) {

e2.printStackTrace();

}

}

});

this.getContentPane().add(jp1,"North");

this.getContentPane().add(jsp,"Center");

this.getContentPane().add(jp2,"South");

this.setVisible(true);

}

/**

* showinfo方法

* @param col

* @param str

*/

public void showinfo(String col,String str) {

int count=jt.getRowCount();

for(int i=0;i

dtm.removeRow(0);

}

Stu_Dao dao=new Stu_Dao();

ArrayList stu=dao.selete(col, str);

for (Stu ss : stu) {

Vector v=new Vector<>();

v.add(ss.getSid());

v.add(ss.getSname());

v.add(ss.getSsex());

v.add(ss.getSage());

v.add(ss.getSaddress());

dtm.addRow(v);

}

}

public static void main(String[] args) {

new Index_ui();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值