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;
}
分享到:
相关推荐
SSH项目内有mysql数据库SSH项目内有mysql数据库SSH项目内有mysql数据库SSH项目内有mysql数据库
SSH2+MySQL论坛完整代码和数据库文件是一套基于SSH2(Spring、Struts2、Hibernate)框架和MySQL数据库实现的论坛系统。这个资源对于学习Java Web开发,特别是SSH2框架的实战应用非常有价值。SSH2是Java开发中常见的...
在这个特定的项目中,“SSH文件上传保存到Mysql数据库”指的是使用Struts2作为前端控制器,Spring作为依赖注入容器,以及Hibernate作为对象关系映射工具,实现文件上传功能并将数据存储到MySQL数据库的过程。...
**SSH+MySQL数据库自动创建详解** SSH(Secure Shell)是一种网络协议,用于在不安全的网络上提供安全的远程登录和其他服务。它主要用于操作系统管理、文件传输和命令执行。SSH框架通常指的是Struts2、Spring和...
在这个项目中,Spring将作为连接数据库和业务逻辑的桥梁,通过依赖注入来管理MySQL数据库连接和数据操作。 **Struts框架** Struts是MVC(模型-视图-控制器)设计模式的一个实现,主要用于构建Web应用的用户界面。...
SSH易买网MySQL数据库
本博客采用SSH开发,数据库是mysql,由于文件大小限制,删去了需要的jar包,运行时导入相应jar包即可。 这个博客是我为了练习ssh框架开发的,因此,界面很简洁,没有过多的装潢,供初学ssh开发的朋友参考。 附:用的...
这个项目可能是一个书籍管理系统的实例,其中包含了用户登录和注册功能,并且使用了MySQL数据库来存储用户信息。 首先,Spring是应用上下文和依赖注入(DI)框架,它允许我们管理对象和它们之间的依赖关系。在登录...
在本项目中,"SSH2框架,mysql完整代码" 暗示我们处理的是一个基于SSH2框架与MySQL数据库相结合的Web应用程序。 Spring框架作为核心,提供了依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented ...
SSH OA系统是一个基于SSH(Struts2、Spring和Hibernate)技术框架构建的办公自动化(Office Automation,OA)系统,通常用于企业的内部管理,提升工作效率。MySQL是它选用的关系型数据库管理系统,提供了数据存储和...
SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常用的一套开源框架。这个框架集合了MVC(Model-View-Controller)设计模式的Struts2,依赖注入和面向切面编程的Spring,以及持久层管理的...
总的来说,SSH2框架结合MySQL数据库,为开发者提供了完整的MVC解决方案,加上EXT库,可以构建出功能丰富、用户体验良好的企业级应用。这份压缩包资料对于Java新手来说是一个很好的学习资源,对于经验丰富的开发者也...
Win 10 ODBC SSH 协议远程连接 MySQL 3306 在本文中,我们将探讨如何使用 Win 10 自带的 OPENSSH 通过 SSH 协议远程连接 MySQL 服务器, 并使用 ODBC 连接到远程 MySQL 服务器。 SSH 协议 SSH(Secure Shell)是...
【JavaEE + SSH框架 + MySQL数据库在银行业中应用】 JavaEE是企业级应用程序开发的首选平台,它提供了丰富的API和工具来构建分布式、多层的Web应用。SSH(Struts2、Spring、Hibernate)框架组合是JavaEE开发中的...
就可以生成SSH框架,非常适合做开发,速度超快,有分页,有SQL语句自动生成,一般的查询 删除 添加 修改 更新 分页 过滤器都有,要的自己去下载,不多说 ,可能分数有点搞,这个不要注册码,网上的都不怎么好,不行...
在SSH框架中,Struts2负责接收用户请求,Spring管理相册服务类,而Hibernate则处理图片与数据库之间的映射关系。 **论坛功能** 包括发帖、回帖、浏览帖子等。这需要一个论坛实体类,用于存储帖子内容、作者信息等。...
这个项目标题提及的是一个结合了MySQL数据库实现简单用户登录功能的SSH整合案例。下面我们将深入探讨SSH框架的核心原理以及在实际应用中的整合步骤。 **Struts框架**: Struts是基于MVC(Model-View-Controller)...
2. 在了解数据库服务器中的库和表的基本情况下,我们使用命令备份数据库 ssh 下的表acc 的数据作为案例演示。 三、Mysql 备份多个数据库 数据库备份其实都是差不多的语句,他们最基本的差异就是添加一些命令用于...
在IT行业中,SSH框架通常指的是Struts2、Spring和Hibernate这三个开源框架的组合,它们是Java Web开发中的常用工具。SSH框架提供了模型-视图-控制器(MVC)设计模式的实现,使得开发者能够更高效地构建应用程序。而...