上移、下移功能

16 篇文章 0 订阅
10 篇文章 0 订阅

                                     实现数据的上移和下移功能


实现效果如下:



功能实现过程为:上移和下移是交换两条数据的位置序号。我将主要业务放在Service,具体操作放在Dao中。

上移的Service层代码:

public void moveUp(Long id) {
		//找出相关的Forum:当前需要移动的板块
		Forum forum = getById(id);
		//当前需要移动的上一个板块
		Forum other = forumDao.createLimitQueryUp(forum.getPosition());
		//最上面的不能上移
		if(other == null){
			return;
		}
		//交换position的值
		int temp = forum.getPosition(); 
		forum.setPosition(other.getPosition());
		other.setPosition(temp);
		//更新到数据库中
		forumDao.update(forum);
		forumDao.update(other); 
	}
上移的Dao层代码:

/**
	 * 限定查询:板块向上移动.
	 * @param position
	 * @return
	 */
	public Forum createLimitQueryUp(int position) {
		Forum forum = (Forum) getSession().createQuery("from Forum f where f.position<? order by f.position desc")//
				.setParameter(0, position).setFirstResult(0).setMaxResults(1).uniqueResult();
		return forum;
	}

下移的Service层代码:

public void moveDown(Long id) {
		//找出相关的Forum:当前需要移动的板块
		Forum forum = getById(id);
		//当前需要移动的下一个板块
		Forum other = forumDao.createLimitQueryDown(forum.getPosition());
		//最下面的不能下移
		if(other == null){
			return;
		}
		//交换position的值
		int temp = forum.getPosition(); 
		forum.setPosition(other.getPosition());
		other.setPosition(temp);
		//更新到数据库中
		forumDao.update(forum);
		forumDao.update(other);
	}

下移的Dao层代码:

/**
	 * 限定查询:板块向下移动
	 * @param position
	 * @return
	 */
	public Forum createLimitQueryDown(int position) {
		Forum forum = (Forum) getSession().createQuery("from Forum f where f.position>? order by f.position asc")//
				.setParameter(0, position).setFirstResult(0).setMaxResults(1).uniqueResult();
		return forum;
	}

这些是实现上下移动的主要代码。



评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值