有些时候用户注册了到不激活,超过30天后我们要删除掉
首先来写存储过程
BEGIN
#删除错过30天没激活的用户
declare now_time dateTime default now();
delete from userdetail where ud_id in (select u_id from user where u_status = 0 and (UNIX_TIMESTAMP(now_time) - UNIX_TIMESTAMP(u_registerTime))/60*60*24*7>1);
delete from user where u_status = 0 and (UNIX_TIMESTAMP(now_time) - UNIX_TIMESTAMP(u_registerTime))/60*60*24*7>1 ;
END
然后在service里调用
/**
* 删除未激活的用户
*/
@SuppressWarnings("unchecked")
public void delNoActiveUser(){
Connection connection = null;
CallableStatement callableStatement = null;
Session session = userDao.getHibernateTemplate().getSessionFactory().openSession();
try {
Transaction ts = session.beginTransaction();
connection = session.connection();
connection.setAutoCommit(false);
//connection = SessionFactoryUtils.getDataSource(userDao.getHibernateTemplate().getSessionFactory()).getConnection();
callableStatement = connection.prepareCall("{call pro_delete_overdue_user() }");
callableStatement.executeUpdate();
ts.commit();
callableStatement.close();
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
try {
callableStatement.close();
connection.close();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
最后放在定时任务里执行
<!-- 定期删除超过30天没激活的用户 -->
<bean id="jobDetailDelNoActiveUser"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="registerService" />
<property name="targetMethod" value="delNoActiveUser" />
</bean>
<bean id="cronTriggerDelNoActiveUser"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="jobDetailDelNoActiveUser" />
<property name="cronExpression" value="0 0 2 * * ? " />
</bean>
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTriggerDelNoActiveUser" />
</list>
</property>
</bean>
分享到:
相关推荐
在这个网上书店系统中,MySQL存储了包括用户信息、商品详情、订单状态等在内的各种数据。 管理员角色的划分是系统管理效率的一大体现。人员管理员可能负责管理用户账户,包括注册、激活、禁用等操作;订单管理员...
- 激活过程中,`UserService`的`active()`方法调用`UserDao`的`findUserByCode()`找到对应用户,再通过`updateState()`更新用户状态为已激活。 - 登录时,`UserService`的`login()`方法使用`findUserByName()`查找...
在Java编程领域,数据库操作是不可或缺的一部分,尤其是在构建复杂应用程序时,如用户管理系统。这个"java数据库,用户管理代码"的标题暗示了我们正在处理一个使用Java语言与数据库交互,用于管理用户账户的系统。...
下面,我们分别从模型(Model)、视图(View)和控制器(Controller)三个层面来详细讲解这个过程。 **模型(Model)** 模型层是应用的核心,负责处理业务逻辑和数据操作。在登录注册场景中,模型层通常包含以下...
例如,删除一个用户时,可以选择是否同时删除所有关联的订单。 - **懒加载和即时加载**: Hibernate支持懒加载(Lazy Loading)和即时加载(Eager Loading)策略,以优化数据检索性能。懒加载只在真正需要时加载...
使用SQL语句可以轻松地创建、读取、更新和删除用户数据。 在Eclipse中,我们可以使用Java语言配合Spring MVC框架实现MVC模式。Spring MVC提供了丰富的工具和功能,支持依赖注入、AOP(面向切面编程)以及数据绑定,...
当Bean需要再次使用时,EJB容器会激活Bean并调用`@PostActivate`方法。这两个方法可以用来处理Bean在存储和恢复时的状态管理。 在提供的代码示例中,`ShoppingCartBean`是一个@Stateful Session Bean,实现了`...
2. **流程实例(Process Instance)**:当流程定义被激活,即创建了一个流程实例,每个实例代表了流程的一个具体运行过程。 3. **任务(Task)**:流程中的活动节点,通常由特定的角色或用户来完成。jBPM提供了任务...
在IT领域,注册登录页面是任何Web应用的基础组件,它为用户提供了一个安全的身份验证入口,确保只有合法用户能够访问受限内容。在这个项目中,我们主要关注的是如何通过数据库连接、接口交互以及异常处理来实现一个...
- 存储过程和函数的编写; - 数据完整性约束设置; - 外键关系建立。 - **应用场景**: - 在JSP微商城系统的初期阶段,完成整个数据库的设计与搭建; - 根据业务需求,对数据库进行优化调整。 #### 二、配置...
`@PrePassivate`方法在此过程中被调用,可以用于保存或释放资源,例如关闭数据库连接。当SessionBean重新被激活时,`@PostActivate`方法会被调用,此时可以恢复之前保存的资源。 以下是一个简单的`ShoppingCartBean...
6. **表单(Form)**: Activiti 可以与表单引擎集成,允许用户在任务处理过程中填写和提交数据,提供更好的用户体验。 7. **表达式和脚本(Expressions and Scripts)**: Activiti 支持使用EL(Expression Language...
2. **数据库交互**:用户信息通常存储在关系型数据库如MySQL或非关系型数据库如MongoDB中。Java通过JDBC(Java Database Connectivity)或ORM(Object-Relational Mapping)框架如Hibernate与数据库进行交互。 3. *...
- **流程实例**: 当流程定义被激活时,创建一个流程实例,代表流程的运行状态。 - **工作项(Task)**: 任务是流程实例中的活动,分配给特定用户或组进行处理。 - **持久化**: jbPM5使用JPA或JDBC对流程实例、...
同样,Struts Action类会处理这些任务,可能还会涉及到邮箱验证或激活链接的发送。DAO层负责将新用户数据插入数据库,确保数据安全性和一致性。 4. **数据库连接** Struts应用通常使用JDBC或者ORM框架如Hibernate...
有状态会话Bean保留了与客户端交互过程中的状态,而无状态会话Bean则不存储任何客户端特定的信息,每次调用都是独立的。 2. **实体Bean (Entity Beans)**:实体Bean映射到数据库中的持久化数据,通常代表业务实体,...
5. **持久化**:jbpm使用Hibernate进行数据持久化,将流程实例和任务状态存储在数据库中,以便于后续查询和恢复。 6. **监听器和事件**:jbpm允许添加监听器来捕获流程中的事件,如任务创建、完成或异常,这样可以...
9. **工作流服务API**:jbpm提供了一套服务接口,如ProcessEngine、RepositoryService、RuntimeService、TaskService等,供开发者在应用程序中调用,以控制流程的生命周期。 10. **示例与实践**:通过"我的开发JBPM...