package com.fgkj.dao.impl; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.fgkj.dao.BaseDAO; import com.fgkj.dao.CallBack; import com.fgkj.dao.DAOHelper; import com.fgkj.db.DBUtil; import com.fgkj.dto.Database_backup; public class Database_backupImpl implements CallBack,BaseDAO{ public List getResults(ResultSet rs) { // TODO Auto-generated method stub List list=new ArrayList(); try { while(rs.next()){ Database_backup baseup=new Database_backup(); baseup.setNum(rs.getInt("num")); baseup.setDatabase_name(rs.getString("database_name")); baseup.setTable_name(rs.getString("table_name")); baseup.setBackup_en(rs.getInt("backup_en")); baseup.setBackup_flag(rs.getInt("backup_flag")); baseup.setNote(rs.getString("note")); list.add(baseup); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } public boolean add(Object obj) { // TODO Auto-generated method stub return false; } //添加多条记录 public boolean addPro(Object obj) { List list=(List) obj; ArrayList sql_strs=new ArrayList(); for (Database_backup baseup : list) { String sql="insert into web_site.tb_database_backup(database_name,table_name) values('"+baseup.getDatabase_name()+"','"+baseup.getTable_name()+"')"; sql_strs.add(sql); } boolean bl=DAOHelper.makeManualCommit(DBUtil.getConn(), sql_strs); return bl; } //根据数据库名和表名修改备份数据库的使能 public boolean update(Object obj) { Database_backup baseup=(Database_backup) obj; String sql="update web_site.tb_database_backup set backup_en=? where database_name=? and table_name=? "; boolean bl=DAOHelper.executeUpdate(DBUtil.getConn(), sql, new Object[]{baseup.getBackup_en(),baseup.getDatabase_name(),baseup.getTable_name()}); return bl; } //根据数据库名和表名修改备份数据库的使能(多笔记录可以选择几个表的) public boolean updatePro(Object obj) { List list=(List) obj; ArrayList sql_strs=new ArrayList(); if(list!=null&&list.size()>0){ for (Database_backup baseup : list) { String sql="update web_site.tb_database_backup set backup_en="+baseup.getBackup_en()+" where database_name='"+baseup.getDatabase_name()+"' and table_name='"+baseup.getTable_name()+"' "; sql_strs.add(sql); } } boolean bl=DAOHelper.makeManualCommit(DBUtil.getConn(), sql_strs); return bl; } //根据数据库名和表名修改备份数据库的使能(一键修改) public boolean updateProAll() { String sql="update web_site.tb_database_backup set backup_en=1 "; boolean bl=DAOHelper.executeUpdate(DBUtil.getConn(), sql, null); return bl; } public boolean del(Object obj) { // TODO Auto-generated method stub return false; } //查询所有数据库备份信息 public List searchAll() { String sql="select num,database_name,table_name,backup_en,note from web_site.tb_database_backup "; List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), null, new CallBack() { public List getResults(ResultSet rs) { // TODO Auto-generated method stub List list=new ArrayList(); try { while(rs.next()){ Database_backup baseup=new Database_backup(); baseup.setNum(rs.getInt("num")); baseup.setDatabase_name(rs.getString("database_name")); baseup.setTable_name(rs.getString("table_name")); baseup.setBackup_en(rs.getInt("backup_en")); baseup.setBackup_flag(rs.getInt("backup_flag")); baseup.setNote(rs.getString("note")); list.add(baseup); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); return list; } //根据数据库名查询该数据库下的表 public List serchByCondition(Object obj) { Database_backup baseup=(Database_backup) obj; String sql="select num,database_name,table_name,backup_en,note from web_site.tb_database_backup " + " where database_name like ?"; List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{"%"+baseup.getDatabase_name()+"%"} , new CallBack() { public List getResults(ResultSet rs) { // TODO Auto-generated method stub List list=new ArrayList(); try { while(rs.next()){ Database_backup baseup=new Database_backup(); baseup.setNum(rs.getInt("num")); baseup.setDatabase_name(rs.getString("database_name")); baseup.setTable_name(rs.getString("table_name")); baseup.setBackup_en(rs.getInt("backup_en")); baseup.setBackup_flag(rs.getInt("backup_flag")); baseup.setNote(rs.getString("note")); list.add(baseup); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); return list; } //查询数据库备份表中所有的数据库 public List searchAllDatabase(){ String sql="select distinct database_name from web_site.tb_database_backup "; List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), null, new CallBack() { public List getResults(ResultSet rs) { // TODO Auto-generated method stub List list=new ArrayList(); try { while(rs.next()){ list.add(rs.getString("database_name")); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); return list; } //根据数据库名查询所有的表 public List searchAllTable(Object obj){ Database_backup baseup=(Database_backup) obj; String sql="select distinct table_name from web_site.tb_database_backup " + " where database_name=?"; List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{baseup.getDatabase_name()}, new CallBack() { public List getResults(ResultSet rs) { // TODO Auto-generated method stub List list=new ArrayList(); try { while(rs.next()){ list.add(rs.getString("table_name")); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); return list; } //查询个数 public int searchNum(Object obj){ Database_backup baseup=(Database_backup) obj; String sql=" select count(num) as number from web_site.tb_database_backup " + " where "; //全部 String allSqlT=" num!=?"; //处于备份的个数 String allSqlF=" backup_en=?"; if(baseup.getNum()==0){ sql+=allSqlT; }else{ sql+=allSqlF; } List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{baseup.getNum()}, new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ int number=rs.getInt("number"); list.add(number); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); int number=0;//最后的返回结果 if(list!=null&&list.size()>0){ number=(Integer) list.get(list.size()-1); } return number; } //查询具体某张表是否已经完成备份 public boolean serchTable_en(Object obj){ Database_backup baseup=(Database_backup) obj; boolean bl=false; String sql="select backup_en from web_site.tb_database_backup " + " where database_name=? and table_name=? limit 1 "; List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{baseup.getDatabase_name(),baseup.getTable_name()}, new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ list.add(rs.getInt("backup_en")); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); if(list!=null&&list.size()>0){ int backup_en=(Integer) list.get(list.size()-1); if (backup_en==2) { bl=true; } else { bl=false; } } return bl; } public List serchByInfo(Object obj) { // TODO Auto-generated method stub return null; } public static void main(String[] args) { /*String sql1="show databases "; List list1=DAOHelper.executeQuery(sql1, DBUtil.getConn(), null, new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ if(!rs.getString("database").equals("information_schema") &&!rs.getString("database").equals("mysql") &&!rs.getString("database").equals("performance_schema") &&!rs.getString("database").equals("sys")){ list.add(rs.getString("database")); } } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); System.out.println("list1:"+list1.size()); List list3=new ArrayList(); if(list1!=null&&list1.size()>0){ for (String database_name : list1) { String sql2="select table_name from information_schema.tables where table_schema='"+database_name+"'"; List list2=DAOHelper.executeQuery(sql2, DBUtil.getConn(), null, new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ list.add(rs.getString("table_name")); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); System.out.println("list2:"+list2.size()); if(list2!=null&&list2.size()>0){ for (String table_name : list2) { Database_backup baseup=new Database_backup(); baseup.setDatabase_name(database_name); baseup.setTable_name(table_name); list3.add(baseup); } } } } System.out.println("list3:"+list3.size()); Database_backupImpl dimpl=new Database_backupImpl(); boolean bl=dimpl.addPro(list3); System.out.println(bl);*/ Database_backupImpl dimpl=new Database_backupImpl(); dimpl.updateProAll(); } }