亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

一個(gè)XOA的編程過(guò)程

系統(tǒng) 2392 0
1、數(shù)據(jù)表結(jié)構(gòu)
user_access_flow
一個(gè)XOA的編程過(guò)程
2、renren-wap-fuxi-model
UserPlayFlowResult.java
    
/**
 * $Id$
 * Copyright 2009-2010 Oak Pacific Interactive. All rights reserved.
 */
package com.xiaonei.wap.fuxi.model;

import java.io.Serializable;


/**
 * 
 * @author <a href="mailto:qiao.wang@renren-inc.com">王僑</a>
 * @createTime 2011-7-20下午07:27:51
 */
public class UserAccessFlow implements Serializable {

	private static final long serialVersionUID = -3660276636695964258L;

	private long id;
	
	/** 用戶(hù)Id */
	private int userId;
	
	/** 訪問(wèn)狀態(tài)0:舊應(yīng)用,1:新應(yīng)用 */
	private int access;
	
	/** 最后訪問(wèn)時(shí)間 */
	private long addTime;

	/**
	 * @return the id
	 */
	public long getId() {
		return id;
	}

	/**
	 * @param id the id to set
	 */
	public void setId(long id) {
		this.id = id;
	}

	/**
	 * @return the userId
	 */
	public int getUserId() {
		return userId;
	}

	/**
	 * @param userId the userId to set
	 */
	public void setUserId(int userId) {
		this.userId = userId;
	}

	/**
	 * @return the access
	 */
	public int getAccess() {
		return access;
	}

	/**
	 * @param access the access to set
	 */
	public void setAccess(int access) {
		this.access = access;
	}

	/**
	 * @return the addTime
	 */
	public long getAddTime() {
		return addTime;
	}

	/**
	 * @param addTime the addTime to set
	 */
	public void setAddTime(long addTime) {
		this.addTime = addTime;
	}
	
	
}


  


3、renren-wap-fuxi-service
UserAccessFlowEntity.java

    
/**
 * $Id$
 * Copyright 2009-2010 Oak Pacific Interactive. All rights reserved.
 */
package com.xiaonei.wap.fuxi.entity;

import java.util.Date;

/**
 * 
 * @author <a href="mailto:qiao.wang@renren-inc.com">王僑</a>
 * @createTime 2011-7-20下午07:43:06
 */
public class UserAccessFlowEntity {
	
	private long id;
	
	private int userId;
	
	private int access;
	
	private Date addTime;

	/**
	 * @return the id
	 */
	public long getId() {
		return id;
	}

	/**
	 * @param id the id to set
	 */
	public void setId(long id) {
		this.id = id;
	}

	/**
	 * @return the userId
	 */
	public int getUserId() {
		return userId;
	}

	/**
	 * @param userId the userId to set
	 */
	public void setUserId(int userId) {
		this.userId = userId;
	}

	/**
	 * @return the access
	 */
	public int getAccess() {
		return access;
	}

	/**
	 * @param access the access to set
	 */
	public void setAccess(int access) {
		this.access = access;
	}

	/**
	 * @return the addTime
	 */
	public Date getAddTime() {
		return addTime;
	}

	/**
	 * @param addTime the addTime to set
	 */
	public void setAddTime(Date addTime) {
		this.addTime = addTime;
	}
	
	

}


  


4、IUserAccessFlowDAO.java
注釋?zhuān)簩?{@link ReturnGeneratedKeys} 聲明在insert語(yǔ)句的方法上,表示返回的是插入的id
    
/**
 * $Id$
 * Copyright 2009-2010 Oak Pacific Interactive. All rights reserved.
 */
package com.xiaonei.wap.fuxi.dao;

import net.paoding.rose.jade.annotation.DAO;
import net.paoding.rose.jade.annotation.ReturnGeneratedKeys;
import net.paoding.rose.jade.annotation.SQL;
import net.paoding.rose.jade.annotation.SQLParam;

import com.xiaonei.wap.fuxi.entity.UserAccessFlowEntity;

/**
 * 
 * @author <a href="mailto:qiao.wang@renren-inc.com">王僑</a>
 * @createTime 2011-7-20下午07:45:48
 */
@DAO(catalog = "user_fuxi")
public interface IUserAccessFlowDAO {
	/**
	 * 保存記錄
	 * @param userAccessFlow
	 * @return
	 */
	@ReturnGeneratedKeys
	@SQL("INSERT INTO user_access_flow(user_id, access, add_time) VALUES(:userAccessFlow.userId, :userAccessFlow.access, :userAccessFlow.addTime)")
	public long create(@SQLParam("userAccessFlow") UserAccessFlowEntity userAccessFlow);
	
	/**
	 * 根據(jù)user_id 更新user_access_flow
	 * @param userAccessFlow
	 * @return
	 */
	@SQL("UPDATE user_access_flow SET access=:userAccessFlow.access, add_time=:userAccessFlow.addTime " +
		 "WHERE user_id=:userAccessFlow.userId ")
	public int update(@SQLParam("userAccessFlow") UserAccessFlowEntity userAccessFlow);
	
	/**
	 * 根據(jù)userId 取 訪問(wèn)信息
	 * @param userId
	 * @return
	 */
	@SQL("select a.user_id, a.access, a.add_time from user_access_flow a where a.user_id = :userId ")
	public UserAccessFlowEntity find(@SQLParam("userId") int userId);
	
}


  


5、IUserAccessService
    
/**
 * $Id$
 * Copyright 2009-2010 Oak Pacific Interactive. All rights reserved.
 */
package com.xiaonei.wap.fuxi.service;

import com.xiaonei.wap.fuxi.entity.UserAccessFlowEntity;
import com.xiaonei.wap.fuxi.model.UserAccessFlow;

/**
 * 
 * @author <a href="mailto:qiao.wang@renren-inc.com">王僑</a>
 * @createTime 2011-7-21下午02:29:42
 */
public interface IUserAccessService {

	/**
	 * 獲取用戶(hù)訪問(wèn)信息
	 * @param userId
	 * @return
	 */
	public UserAccessFlow getUserAccessFlow(int userId);
	
	/**
	 * 保存用戶(hù)訪問(wèn)信息
	 * @param userAccessFlow
	 * @return
	 */
	public long creatUserAccessFlow(UserAccessFlowEntity userAccessFlow);
	
	/**
	 * 更新用戶(hù)訪問(wèn)信息
	 * @param userAccessFlow
	 * @return
	 */
	public int updateUserAccessFlow(UserAccessFlowEntity userAccessFlow);
}


  


6、實(shí)現(xiàn)
    
/**
 * $Id$
 * Copyright 2009-2010 Oak Pacific Interactive. All rights reserved.
 */
package com.xiaonei.wap.fuxi.service.impl;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.util.Assert;

import com.renren.xcache.XCache;
import com.xiaonei.wap.framework.cache.XCacheManager2;
import com.xiaonei.wap.fuxi.dao.IUserAccessFlowDAO;
import com.xiaonei.wap.fuxi.entity.UserAccessFlowEntity;
import com.xiaonei.wap.fuxi.model.UserAccessFlow;
import com.xiaonei.wap.fuxi.service.IUserAccessService;

/**
 * 
 * @author <a href="mailto:qiao.wang@renren-inc.com">王僑</a>
 * @createTime 2011-7-21下午02:37:12
 */
public class UserAccessServiceImpl extends BaseBusinessService implements IUserAccessService,
		InitializingBean{

	/**
     * Logger for this class
     */
    private final Log logger = LogFactory.getLog(UserAccessServiceImpl.class);
    
	private static final String CACHE_TYPE_USER_ACCESS_FLOW = "user_access_flow";
	
	// user access緩存時(shí)間,默認(rèn)1天
	private int userAccessDefaultCacheTime = XCache.EXPIRE_DAY * 1;
	
	private IUserAccessFlowDAO userAccessFlowDAO;
	
	/**
	 * 基礎(chǔ)方法,根據(jù) userId獲取訪問(wèn)基本信息
	 * 
	 * @param userId
	 * @return
	 */
	@Override
	public UserAccessFlow getUserAccessFlow(int userId) {
		if (userId <0){
			return null;
		}
		XCacheManager2 cache = XCacheManager2.getCacheManager(CACHE_TYPE_USER_ACCESS_FLOW);
		UserAccessFlow userAccessFlow = cache.get(String.valueOf(userId), UserAccessFlow.class);
		if (userAccessFlow == null){
			userAccessFlow = loadUserAccessFlowFromDb(userId);
		}
		return userAccessFlow;
	}

	/**
	 * 從db中取一條userAccessFlow,放入緩存
	 * @param userId
	 * @return
	 */
	private UserAccessFlow loadUserAccessFlowFromDb(int userId) {
		UserAccessFlowEntity userAccessFlow = userAccessFlowDAO.find(userId);
		UserAccessFlow userAccessFlowResult = null;
		String key = String.valueOf(userId);
		if(userAccessFlow != null) {
			//組裝user access model
			userAccessFlowResult = buildUserAccessFlow(userAccessFlow);
			if(userAccessFlowResult != null) {
				XCacheManager2 cache = XCacheManager2.getCacheManager(CACHE_TYPE_USER_ACCESS_FLOW);
				cache.save(key, userAccessFlowResult, UserAccessFlow.class, userAccessDefaultCacheTime);
			} else {
				logger.error("can't build user access for key:" + key);
			}
		} else {
			logger.error("can't find user access from db for key:" + key);
		}
		return userAccessFlowResult;
	}

	/**
	 * 對(duì)userAccessFlow進(jìn)行包裝
	 * 
	 * @param userAccessFlow
	 * @param userAccessFlowResult
	 */
	private UserAccessFlow buildUserAccessFlow(UserAccessFlowEntity userAccessFlow) {
		if(userAccessFlow == null) {
			return null;
		}
		UserAccessFlow userAccessFlowResult = new UserAccessFlow();
		userAccessFlowResult.setId(userAccessFlow.getId());
		userAccessFlowResult.setUserId(userAccessFlow.getUserId());
		userAccessFlowResult.setAccess(userAccessFlow.getAccess());
		if (userAccessFlow.getAddTime() != null) {
			userAccessFlowResult.setAddTime(userAccessFlow.getAddTime().getTime());
		}
		
		return userAccessFlowResult;
	}

	@Override
	public long creatUserAccessFlow(UserAccessFlowEntity userAccessFlow) {
		long result = 0;
        try {
            result = userAccessFlowDAO.create(userAccessFlow);

        } catch (Exception e) {
            logger.error("creatUserAccessFlow error, userId:" + userAccessFlow.getUserId(), e);
            result = -1;
        }
        return result;
	}

	@Override
	public int updateUserAccessFlow(UserAccessFlowEntity userAccessFlow) {
		int result = 0;
        try {
            result = userAccessFlowDAO.update(userAccessFlow);

        } catch (Exception e) {
        	logger.error("updateUserAccessFlow error, userId:" + userAccessFlow.getUserId(), e);
            result = -1;
        }
        return result;
	}

	/**
	 * @param userAccessFlowDAO the userAccessFlowDAO to set
	 */
	public void setUserAccessFlowDAO(IUserAccessFlowDAO userAccessFlowDAO) {
		this.userAccessFlowDAO = userAccessFlowDAO;
	}

	@Override
	public void afterPropertiesSet() throws Exception {
		Assert.notNull(userAccessFlowDAO, "userAccessFlowDAO is required!");
		
	}

	
}


  

一個(gè)XOA的編程過(guò)程


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 色偷偷7777www | 欧洲激情乱子伦 | 一级久久 | 伊人久久精品亚洲午夜 | 久久国产视屏 | 日本高清在线一区二区三区 | 又粗又大的机巴好爽7 | 国产精品国产三级国产 | 国产69精品久久久久妇女 | 久久99精品视香蕉蕉 | 国产欧美一区二区三区沐欲 | 久久99精品久久久久久牛牛影视 | 欧美成人精品高清在线播放 | 四虎永久网站 | www精品久久 | 亚洲国产精品激情在线观看 | 亚洲一级黄色大片 | 国产精品伦理一二三区伦理 | 国产香蕉91tv永久在线 | 亚洲人成网站999久久久综合 | 中国国产一国产一级毛片视频 | 色综合欧美色综合七久久 | 欧美日韩中文在线视频 | 亚洲欧美强伦一区二区另类 | 精品a视频 | 毛片在线看网站 | 久热在线视频 | 伊人精品视频一区二区三区 | 久久久久日韩精品无 | 亚洲精品国产啊女成拍色拍 | 99精品国产久热在线观看66 | 天天做天天看夜夜爽毛片 | 国产日产欧美 | 亚洲高清成人 | 中文字幕免费观看视频 | 嘿咻嘿咻免费区在线观看吃奶 | 一级毛片大全 | 亚洲国产精品yw在线观看 | 国内精品久久久久激情影院 | 久久国产综合精品欧美 | 精品视频一区在线观看 |