Quartz自动任务
前言:JDK1.5,hibernate,informix数据库老项目折磨记录
一、配置开关
这个开关设置还是挺好的,添加开关只需要加上一条数据即可,相关参数可以在这个数据上匹配,使用了3个拓展字段进行管理
二、建两个待处理数据表
具体内容不重要
1、hibernate框架实体类映射
建立实体类,在类名上使用@Entity和@Table(name = “表名”)注解
在get方法上使用@Column(name = “identifyType”,updatable=false)注解,因为该表只做取数据去处理和改处理标识,大部分是不更新的所以updatable=false即可
拓展:在get方法上注解与在属性上注解不一样的就是方法上类属性还是被保护的,在属性上注解hibernate就可以直接访问到类属性,这样private声明就相当于无效了
到此实体类映射已经完成
2、hibernate框架查询
创建service类,mapper方法可以调用父类的sql方法
public class 实体类ServiceImpl extends GenericDaoHibernate<实体类,String> implements 实体类Service{
}
可以直接使用super.findTopByHql()等方法
拓展:这里遇到一个比较坑的bug,空指针,在super里空指针了,最后排查原因是因为spring框架的问题,spring框架使用了bean自动注入管理,在new对象的时候能进来方法,debug也显示对象实例,实际上调用这些方法会空指针
解决方法:
1)配置bean:
<!-- 自动建档个人客户 -->
<bean id="个人客户Service"
class="com.x.x.x.service.x.个人客户ServiceImpl" />
<!-- 自动建档单位客户 -->
<bean id="单位客户Service"
class="com.x.x.x.service.spring.单位客户ServiceImpl" />
2)实例化
private 个人客户Service 个人客户impl = (个人客户Service) ServiceFactory.getService("个人客户Service");
三、自动任务
1、自动任务类
ublic class BatchAddNewQuartz {