`
duinibuhaome
  • 浏览: 41325 次
  • 性别: Icon_minigender_1
  • 来自: 太原
社区版块
存档分类
最新评论

ssh2自动备份mysql数据库 spring定时器

    博客分类:
  • SSH2
阅读更多

spring 有个定时器  通过定时器 设置时间来自动备份数据库文件

时间是通过数据库读取出来的

当你修改了数据库的时间

只有在重启tomcat才能执行新的时间

这里直接读取数据库的时间

 

第一步:

<!-- 业务调度者 -->
     <bean id="schedulerJobDetail"       class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
         <property name="targetObject" ref="scheduleInfoAction"/> 执行对象
         <property name="targetMethod" value="reScheduleJob"/> 执行方法
         <property name="concurrent" value="false"/>
     </bean>

 

 <!-- 调度者  自己手写 因为要修改时间 -->
     <bean id="cronTrigger" class="com.business.backdata.InitTime" >
         <property name="jobDetail" ref="schedulerJobDetail"/>
          <!--  <property name="cronExpression"> 系统配置的时间 这里不用从数据库读取时间
              <value>0/10 * * * * ?</value>
          </property> -->
          <property name="scheduleInfoManager" ref="scheduleInfoManager"/>
      </bean>

<!-- 调度工厂 -->
     <bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false">
         <property name="triggers">
             <list>
                 <ref local="cronTrigger"/>
             </list>
         </property>
 </bean>
 <!-- 获取数据库值的类 -->
 <bean id="scheduleInfoManager" class="com.business.backdata.ScheduleInfoManager"/>
    <!-- 执行业务方法-->
 <bean id="scheduleInfoAction" class="com.business.backdata.ScheduleData">
         <property name="scheduleInfoManager" ref="scheduleInfoManager"/>
    </bean>

 

第二步:初始化时间(从数据库获取时间)

public class InitTime extends CronTriggerBean {//必须继承CronTriggerBean
 private ScheduleInfoManager scheduleInfoManager;//
注入对象

public String getCronExpressionFromDB(){
         String sql="from SysParamInfo  where sysParamCode='sys_databack_pl'";
         List<SysParamInfo> scheduleList =scheduleInfoManager.queryScheduleInListBySql(sql);
         SysParamInfo scheduleInfo = (SysParamInfo)scheduleList.get(0);
         String dbCronExpression = scheduleInfo.getSysParamValue();
         String corn="";
         if(dbCronExpression!=null && !"".equals(dbCronExpression)){//数据库的时间和配置的时间不一样

         //数据库时间格式为  month;2;10:10:00  每月2日10点10分

         //week;2;10:10:00 每周星期二10点10分

         //day;10:00:00 每天10点  

        //spring的定时器baidu上搜一下就可以找到怎么定义时间
          String [] s=dbCronExpression.split(";");
          if(s[0].equals("day")){
           String [] t=s[1].split(":");
           corn=t[2]+" "+t[1]+" "+t[0]+" *"+" *"+" ?";
          }else if(s[0].equals("week")){//每周
           //星期几
           String  w=s[1];
           //时间
           String [] t=s[2].split(":");
           corn=t[2]+" "+t[1]+" "+t[0]+" ?"+" * "+w;
          }else if(s[0].equals("month")){
           //月份
           String  m=s[1];
          //时间
           String [] t=s[2].split(":");
           corn=t[2]+" "+t[1]+" "+t[0]+" "+m+" *"+" ?";
          }
         }
         return corn;
  }
 public ScheduleInfoManager getScheduleInfoManager() {
  return scheduleInfoManager;
 }

 public void setScheduleInfoManager(ScheduleInfoManager scheduleInfoManager) {
  this.scheduleInfoManager = scheduleInfoManager;
  String cronExpression=getCronExpressionFromDB();
  try {
   setCronExpression(cronExpression);//填充手下不知道
  } catch (ParseException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }

 

第三步:操作数据库类

public class ScheduleInfoManager {
 @Autowired
 private SysParamInfoService sysParamInfoService;
 
 public List<SysParamInfo> queryScheduleInListBySql(String sql){
   List<SysParamInfo> list=new ArrayList<SysParamInfo>();
   list=sysParamInfoService.fingSystemInfo(sql);
   return list;
  }
}

第四步:业务类

public class ScheduleData extends Action  {
 @Autowired
 private CopyDatabaseService copyDatabaseService;
 private ScheduleInfoManager scheduleInfoManager;
 String user = "jxkh"; // 数据库帐号
 String pass = "jxkh"; // 登陆密码
 String database = "st_jxkh"; // 需要备份的数据库名
 public void reScheduleJob() throws SchedulerException, Exception{
  addCopyDatabase();
 }
 private void addCopyDatabase() {
  String path="D:\\backdata";
  File isyou=new File(path);
  if(!isyou.exists()){
   isyou.mkdirs();
  }
  Date date=new Date();
  SimpleDateFormat sdf=new SimpleDateFormat("yyMMddHHmmss");
  SimpleDateFormat sdfs=new SimpleDateFormat("yy-MM-dd HH:mm:ss");
  String paths=path+"\\auto-stjxkh-"+sdf.format(date)+".sql";
  try {
   if(BackUp.backup(paths, user, pass, database))//BackUp.backup()
   {
    CopyDatabase copyDatabases=new CopyDatabase();
    copyDatabases.setCopyPath(paths);
    copyDatabases.setCopyDate(sdfs.format(date));
    copyDatabases.setCopyName(sdf.format(date).toString());
    copyDatabaseService.addCopyDatabase(copyDatabases);
   }else
   {
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
 public ScheduleInfoManager getScheduleInfoManager() {
  return scheduleInfoManager;
 }
 public void setScheduleInfoManager(ScheduleInfoManager scheduleInfoManager) {
  this.scheduleInfoManager = scheduleInfoManager;
 }

 

分享到:
评论
3 楼 爱知冰点 2013-10-16  
能否发个例子 280505776@qq.com 谢谢
2 楼 duinibuhaome 2011-12-19  
可以的,用任务计划 就可以
1 楼 sunny243788557 2011-12-12  
这个直接通过系统的时间让数据库自动备份不行么?

相关推荐

    SSH项目内有mysql数据库

    SSH项目内有mysql数据库SSH项目内有mysql数据库SSH项目内有mysql数据库SSH项目内有mysql数据库

    ssh2+mysql论坛完整代码和数据库文件

    SSH2+MySQL论坛完整代码和数据库文件是一套基于SSH2(Spring、Struts2、Hibernate)框架和MySQL数据库实现的论坛系统。这个资源对于学习Java Web开发,特别是SSH2框架的实战应用非常有价值。SSH2是Java开发中常见的...

    SSH文件上传保存到MySql数据库

    在这个特定的项目中,“SSH文件上传保存到Mysql数据库”指的是使用Struts2作为前端控制器,Spring作为依赖注入容器,以及Hibernate作为对象关系映射工具,实现文件上传功能并将数据存储到MySQL数据库的过程。...

    SSH+MySql demo 数据库自动创建

    **SSH+MySQL数据库自动创建详解** SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。它主要用于操作系统管理、文件传输和命令执行。SSH框架通常指的是Struts2、Spring和...

    简单的SSH整合,用到MySql数据库,使用ajax和json

    在这个项目中,Spring将作为连接数据库和业务逻辑的桥梁,通过依赖注入来管理MySQL数据库连接和数据操作。 **Struts框架** Struts是MVC(模型-视图-控制器)设计模式的一个实现,主要用于构建Web应用的用户界面。...

    SSH易买网MySQL数据库

    SSH易买网MySQL数据库

    博客-ssh实现mysql数据库,初学ssh的Demo

    本博客采用SSH开发,数据库是mysql,由于文件大小限制,删去了需要的jar包,运行时导入相应jar包即可。 这个博客是我为了练习ssh框架开发的,因此,界面很简洁,没有过多的装潢,供初学ssh开发的朋友参考。 附:用的...

    登录注册ssh整合(带mysql数据库)

    这个项目可能是一个书籍管理系统的实例,其中包含了用户登录和注册功能,并且使用了MySQL数据库来存储用户信息。 首先,Spring是应用上下文和依赖注入(DI)框架,它允许我们管理对象和它们之间的依赖关系。在登录...

    SSH2框架,mysql完整代码

    在本项目中,"SSH2框架,mysql完整代码" 暗示我们处理的是一个基于SSH2框架与MySQL数据库相结合的Web应用程序。 Spring框架作为核心,提供了依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented ...

    SSH OA 系统(MySQL数据库)

    SSH OA系统是一个基于SSH(Struts2、Spring和Hibernate)技术框架构建的办公自动化(Office Automation,OA)系统,通常用于企业的内部管理,提升工作效率。MySQL是它选用的关系型数据库管理系统,提供了数据存储和...

    ssh框架和开发的时MySQL数据库工具

    SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常用的一套开源框架。这个框架集合了MVC(Model-View-Controller)设计模式的Struts2,依赖注入和面向切面编程的Spring,以及持久层管理的...

    ssh2框架,带MySQL数据库,带说明文档,带ext

    总的来说,SSH2框架结合MySQL数据库,为开发者提供了完整的MVC解决方案,加上EXT库,可以构建出功能丰富、用户体验良好的企业级应用。这份压缩包资料对于Java新手来说是一个很好的学习资源,对于经验丰富的开发者也...

    Win 10 ODBC SSH协议远程连接MySQL 3306.docx

    Win 10 ODBC SSH 协议远程连接 MySQL 3306 在本文中,我们将探讨如何使用 Win 10 自带的 OPENSSH 通过 SSH 协议远程连接 MySQL 服务器, 并使用 ODBC 连接到远程 MySQL 服务器。 SSH 协议 SSH(Secure Shell)是...

    JavaEE +SSH框架+mysql数据库 银行业务调度管理系统项目地址.docx

    【JavaEE + SSH框架 + MySQL数据库在银行业中应用】 JavaEE是企业级应用程序开发的首选平台,它提供了丰富的API和工具来构建分布式、多层的Web应用。SSH(Struts2、Spring、Hibernate)框架组合是JavaEE开发中的...

    SSH自动生成代码工具加MySQL数据库

    就可以生成SSH框架,非常适合做开发,速度超快,有分页,有SQL语句自动生成,一般的查询 删除 添加 修改 更新 分页 过滤器都有,要的自己去下载,不多说 ,可能分数有点搞,这个不要注册码,网上的都不怎么好,不行...

    SSH例程+MySql数据库

    在SSH框架中,Struts2负责接收用户请求,Spring管理相册服务类,而Hibernate则处理图片与数据库之间的映射关系。 **论坛功能** 包括发帖、回帖、浏览帖子等。这需要一个论坛实体类,用于存储帖子内容、作者信息等。...

    SSH框架整合源码和数据库(结合MySQL实现简单的用户登录)

    这个项目标题提及的是一个结合了MySQL数据库实现简单用户登录功能的SSH整合案例。下面我们将深入探讨SSH框架的核心原理以及在实际应用中的整合步骤。 **Struts框架**: Struts是基于MVC(Model-View-Controller)...

    Mysql数据库备份(一)-数据库备份和表备份.docx

    2. 在了解数据库服务器中的库和表的基本情况下,我们使用命令备份数据库 ssh 下的表acc 的数据作为案例演示。 三、Mysql 备份多个数据库 数据库备份其实都是差不多的语句,他们最基本的差异就是添加一些命令用于...

    基于ssh框架的mysql数据库导出脚本

    在IT行业中,SSH框架通常指的是Struts2、Spring和Hibernate这三个开源框架的组合,它们是Java Web开发中的常用工具。SSH框架提供了模型-视图-控制器(MVC)设计模式的实现,使得开发者能够更高效地构建应用程序。而...

Global site tag (gtag.js) - Google Analytics