package com.han.service;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import com.googlecode.ehcache.annotations.Cacheable;
import com.googlecode.ehcache.annotations.TriggersRemove;
import com.han.common.CommonConstant;
import com.han.common.PageBean;
import com.han.dao.LoginLogDao;
import com.han.dao.UserDao;
import com.han.model.LoginLog;
import com.han.model.User;
@Component("userManager")
public class UserManager{
@Resource
private UserDao userDao;
@Resource
private LoginLogDao loginLogDao;
/**
* 将查询的所有用户放入cacheMAP
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
@Cacheable(cacheName="userCache")
public int queryAllUsersMap() {
List<User> list = userDao.getAllUser();
int count = 0;
Map<Integer, User> userMap = null;
if (!CollectionUtils.isEmpty(list)) {
userMap = new HashMap<Integer, User>();
for (User user : list) {
userMap.put(user.getUserId(), user);
}
count = userMap.size();
}
return count;
}
/**
* 分页查询所有用户
* @param page 当前页
* @return 封装了分页信息的bean
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
public PageBean queryAllUsers(int page) {
PageBean pageBean = new PageBean();
pageBean = userDao.getAllUserByPage(page);
return pageBean;
}
/**
* 查询用户是否存在
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = true)
public User exists(String username) throws Exception {
return userDao.getUserByName(username);
}
/**
* 新增用户
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = false)
@TriggersRemove(cacheName="userCache",removeAll=true)
public void add(User user) throws Exception {
userDao.saveUser(user);
// 记录登录日志
LoginLog loginLog = new LoginLog();
loginLog.setUserid(user.getUserId());
loginLog.setIp(user.getLastIp());
loginLog.setLoginDate(new Date());
loginLogDao.saveLoginLog(loginLog);
}
/**
* 登陆成功
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = false)
public void loginSuccess(User user) {
// 登录积分奖励
user.setCredit(CommonConstant.LOGIN_CREDIT + user.getCredit());
// 记录登录日志
LoginLog loginLog = new LoginLog();
loginLog.setUserid(user.getUserId());
loginLog.setIp(user.getLastIp());
loginLog.setLoginDate(new Date());
userDao.updateUser(user);
loginLogDao.saveLoginLog(loginLog);
}
/**
* 将用户锁定,锁定的用户不能够登录
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = false)
public void lockUser(String userName) {
User user = userDao.getUserByName(userName);
user.setLocked(CommonConstant.USER_LOCK);
userDao.updateUser(user);
}
/**
* 解除用户的锁定
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = false)
public void unlockUser(String userName) {
User user = userDao.getUserByName(userName);
user.setLocked(CommonConstant.USER_UNLOCK);
userDao.updateUser(user);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
1)Demo 学习要点简介: 1.通过google ehcache-spring-annotatios.jar自动注解方式实现整合Spring+Ehcache。 2.Action里通过struts2-spring-plugin.jar插件自动根据名字注入。 3.Ajax无刷新异步调用Struts2,返回Json数据,以用户注册为例。 4.在服务端分页查询功能,优点:实时性:跳页才查询。数据量小:只加载当前页的记录进行显示。 5.单数据源配置(兼容Tomcat和Weblogic)。 6.Hibernate继承 HibernateDaoSupport。 7.Spring+Junit4单元测试,优点:不会破坏数据库现场,等等。 2)Demo 导入说明: 1.Eclipse Encoding:GBK 2.Eclipse 导入后可能需要在 Xml Catalog 手动添加:ehcache-spring-1.2.xsd(ehcache-spring-annotations-1.2.0-sources.jar里面有,自己找下)。 3.内附Oracle建表等可执行语句。
资源推荐
资源详情
资源评论
收起资源包目录
Struts2+Spring+Hibernate+Ehcache+AJAX+JQuery+Oracle 框架集成用户登录注册Demo工程 (113个子文件)
UserManager.class 4KB
UserDaoImpl.class 3KB
PageBean.class 3KB
UserLoginAction.class 3KB
UserRegAction.class 3KB
BaseDao.class 3KB
TestEhcache.class 2KB
UserListAction.class 2KB
User.class 2KB
LoginLog.class 1KB
LoginLogDaoImpl.class 1KB
CommonConstant.class 645B
UserDao.class 403B
LoginLogDao.class 168B
.classpath 1004B
org.eclipse.wst.common.component 646B
org.eclipse.wst.jsdt.ui.superType.container 49B
hibernate3.jar 2.31MB
xwork-2.1.2.jar 2.18MB
aspectjweaver.jar 1.47MB
guava-r09.jar 1.09MB
xwork-core-2.2.1.jar 997KB
ehcache-core-2.4.5.jar 982KB
freemarker-2.3.13.jar 850KB
struts2-core-2.1.6.jar 719KB
spring-context-3.0.7.RELEASE.jar 655KB
javassist-3.9.0.GA.jar 583KB
commons-collections-3.1.jar 546KB
spring-beans-3.0.7.RELEASE.jar 544KB
antlr-2.7.6.jar 433KB
spring-web-servlet-3.0.7.RELEASE.jar 410KB
spring-web-3.0.7.RELEASE.jar 389KB
log4j-1.2.15.jar 383KB
spring-jdbc-3.0.7.RELEASE.jar 377KB
spring-core-3.0.7.RELEASE.jar 375KB
spring-orm-3.0.7.RELEASE.jar 327KB
cglib-nodep-2.2.jar 315KB
spring-aop-3.0.7.RELEASE.jar 314KB
dom4j-1.6.1.jar 307KB
hibernate-annotations.jar 273KB
junit-4.8.1.jar 231KB
spring-tx-3.0.7.RELEASE.jar 227KB
spring-test-3.0.7.RELEASE.jar 201KB
spring-jms-3.0.7.RELEASE.jar 181KB
spring-expression-3.0.7.RELEASE.jar 166KB
ognl-2.6.11.jar 164KB
ehcache-spring-annotations-1.2.0.jar 122KB
commons-dbcp.jar 119KB
aspectjrt.jar 112KB
ehcache-spring-annotations-1.2.0-sources.jar 103KB
spring-context-support-3.0.7.RELEASE.jar 99KB
commons-io-1.3.2.jar 86KB
commons-codec-1.5.jar 71KB
hibernate-commons-annotations.jar 65KB
commons-pool.jar 61KB
spring-oxm-3.0.7.RELEASE.jar 60KB
commons-fileupload-1.2.1.jar 56KB
spring-asm-3.0.7.RELEASE.jar 52KB
commons-logging-1.1.jar 52KB
struts2-json-plugin-2.1.8.1.jar 50KB
ejb3-persistence.jar 49KB
slf4j-api-1.5.8.jar 23KB
spring-js-2.3.0.RELEASE.jar 17KB
jta-1.1.jar 13KB
slf4j-log4j12-1.5.8.jar 9KB
struts2-spring-plugin-2.1.6.jar 9KB
common-annotations.jar 6KB
aopalliance-1.0.jar 4KB
UserManager.java 3KB
PageBean.java 3KB
UserRegAction.java 2KB
UserLoginAction.java 2KB
TestEhcache.java 2KB
UserDaoImpl.java 2KB
BaseDao.java 2KB
UserListAction.java 1KB
User.java 1KB
CommonConstant.java 1024B
LoginLog.java 921B
LoginLogDaoImpl.java 675B
UserDao.java 356B
LoginLogDao.java 140B
jquery-2.1.4.js 251KB
jquery-2.1.4.min.js 82KB
.jsdtscope 503B
showUsers.jsp 2KB
register.jsp 2KB
answer.jsp 967B
login.jsp 767B
index.jsp 757B
MANIFEST.MF 39B
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.jdt.core.prefs 364B
org.eclipse.core.resources.prefs 55B
.project 1KB
jdbc.properties 478B
jdbc.properties 478B
table.sql 2KB
appctx-db.xml 3KB
appctx-db.xml 3KB
共 113 条
- 1
- 2
资源评论
迷之编码
- 粉丝: 1
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功