亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? albumdao.java

?? 個(gè)人Blog java編寫的Blog可以直接使用!
?? JAVA
字號(hào):
/*
 *  AlbumDAO.java
 *  
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; either version 2 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU Library General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program; if not, write to the Free Software
 *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 *  
 *  Author: Winter Lau
 *  http://dlog4j.sourceforge.net
 *  
 */
package com.liusoft.dlog4j.dao;

import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Session;

import com.liusoft.dlog4j.CapacityExceedException;
import com.liusoft.dlog4j.base.Orderable;
import com.liusoft.dlog4j.beans.AlbumBean;
import com.liusoft.dlog4j.beans.SiteBean;

/**
 * 相簿數(shù)據(jù)庫(kù)訪問接口
 * 
 * @author Winter Lau
 */
public class AlbumDAO extends DAO {

	public final static int MAX_ALBUM_COUNT = 20;

	/**
	 * 判斷一個(gè)相簿是否為空,包括沒有照片和子相簿
	 * @param album_id
	 * @return
	 */
	public static boolean isAlbumEmpty(int album_id){
		if(executeNamedStatAsInt("PHOTO_COUNT_OF_ALBUM", album_id, album_id) > 0)
			return false;
		//看是否有子相簿
		return executeNamedStatAsInt("SUB_ALBUM_COUNT", album_id)<=0;
	}
	
	/**
	 * 移動(dòng)相片
	 * 
	 * @param site
	 * @param fromCat
	 * @param toCat
	 * @return 返回移動(dòng)照片的數(shù)量
	 * @throws SQLException
	 */
	public static int movePhoto(int siteid, AlbumBean fromCat,AlbumBean toCat){
		
		if(siteid<=0 || fromCat==null || toCat==null)
			throw new IllegalArgumentException();
		
		if(fromCat.getId()==toCat.getId())
			return 0;
		
		int single_photo_count = 0;
		
		try {
			//1. 計(jì)算源相簿的所有子相簿的照片數(shù),不包括本層的照片
			int photo_count = 0;
			List childs = fromCat.getChilds();
			for(int i=0;childs!=null&&i<childs.size();i++){
				AlbumBean abean = (AlbumBean)childs.get(i);
				photo_count += abean.getPhotoCount();
			}
			
			//2. 計(jì)算要移動(dòng)的照片數(shù)
			single_photo_count = fromCat.getPhotoCount()-photo_count;
			
			//3. 修改照片所在的分類
			beginTransaction();
			executeNamedUpdate("MOVE_PHOTO", toCat.getId(), fromCat.getId(), siteid);

			//4. 修改目標(biāo)相簿的照片數(shù)
			executeNamedUpdate("INC_ALBUM_PHOTO_COUNT", single_photo_count, toCat.getId(), siteid);
			
			//5. 修改源相簿的父一級(jí)相簿的相片數(shù)
			AlbumBean src_parent = fromCat.getParent();
			do{
				if(src_parent == null)
					break;
				executeNamedUpdate("INC_ALBUM_PHOTO_COUNT", -single_photo_count, src_parent.getId(), siteid);
				src_parent = src_parent.getParent();
			}while(true);				

			//6. 修改目標(biāo)相簿的父一級(jí)相簿的照片數(shù)
			AlbumBean obj_parent = toCat.getParent();
			do{
				if(obj_parent == null)
					break;
				executeNamedUpdate("INC_ALBUM_PHOTO_COUNT", single_photo_count, obj_parent.getId(), siteid);
				obj_parent = obj_parent.getParent();
			}while(true);				

			//7. 重新計(jì)算源相簿的照片數(shù)
			executeNamedUpdate("UPDATE_ALBUM_PHOTO_COUNT", photo_count, fromCat.getId(), siteid);

			//8.提交
			commit();
		} catch (HibernateException e) {
			rollback();
			throw e;
		}
		return single_photo_count;
	}

	/**
	 * 根據(jù)相簿的編號(hào)獲取相簿詳細(xì)信息
	 * 
	 * @param album_id
	 * @return
	 */
	public static AlbumBean getAlbumByID(int album_id) {
		if(album_id < 1)
			return null;
		return (AlbumBean)DAO.getBean(AlbumBean.class, album_id);
	}

	/**
	 * 調(diào)整分類順序 由于在創(chuàng)建分類的時(shí)候已經(jīng)可以保證所有分類是有序的遞增的 因此直接交換兩個(gè)分類的排序值即可
	 * 
	 * @param site
	 * @param linkid
	 * @param up
	 *            向上調(diào)整或者向下調(diào)整
	 * @throws SQLException
	 */
	public static void move(SiteBean site, int album_id, boolean up){
		List objects = site.getCatalogs();
		for (int i = 0; i < objects.size(); i++) {
			Orderable obj = (Orderable) objects.get(i);
			int sort_order = obj.getSortOrder();
			if (obj.getId() == album_id) {
				if (up) {
					if (i > 0) {
						try {
							Orderable prev = (Orderable) objects.get(i - 1);
							int prev_order = prev.getSortOrder();
							DAO.beginTransaction();
							executeNamedUpdate("UPDATE_ALBUM_ORDER", sort_order, prev.getId());
							executeNamedUpdate("UPDATE_ALBUM_ORDER", prev_order, obj.getId());
							commit();
						} catch (HibernateException e) {
							rollback();
							throw e;
						} 
					}
				} else {
					if (i < (objects.size() - 1)) {
						try {
							Orderable next = (Orderable) objects.get(i + 1);
							int next_order = next.getSortOrder();
							beginTransaction();							
							executeNamedUpdate("UPDATE_ALBUM_ORDER", sort_order, next.getId());
							executeNamedUpdate("UPDATE_ALBUM_ORDER", next_order, obj.getId());
							commit();
						} catch (HibernateException e) {
							rollback();
							throw e;
						}
					}
				}
				break;
			}
		}
	}
	
	/**
	 * 添加相簿
	 * 
	 * @param parentId
	 * @param obj
	 * @param pos
	 * @param up
	 * @throws SQLException
	 * @throws CapacityExceedException
	 */
	public static void create(int parentId, AlbumBean obj, int pos, int direction)
			throws CapacityExceedException {
		Session ssn = getSession();
		int order_value = 1;
		if (pos > 0) {
			AlbumBean friend = getAlbumByID(pos);
			order_value = friend.getSortOrder();
		}
		// 父節(jié)點(diǎn)
		if (parentId > 0){
			AlbumBean parent = (AlbumBean)DAO.getBean(AlbumBean.class, parentId);
			if(parent!=null)
				obj.setParent(parent);
		}

		obj.setSortOrder(order_value - ((direction==1) ? 1 : 0));
		try {
			beginTransaction();
			ssn.save(obj);
			// 重新讀取鏈接列表,依照順序進(jìn)行整理
			List albums = findNamedAll("LIST_ALBUM",obj.getSite().getId());
			if (albums.size() >= ConfigDAO.getMaxAlbumCount(obj.getSite().getId()))
				throw new CapacityExceedException(albums.size());
			if (albums.size() > 1) {
				for (int i = 0; i < albums.size(); i++) {
					Orderable lb = (Orderable) albums.get(i);
					executeNamedUpdate("UPDATE_ALBUM_ORDER", i+1, lb.getId());
				}
			}
			commit();
		} catch (HibernateException e) {
			rollback();
			throw e;
		}
	}

	/**
	 * 刪除日記分類
	 * 此處不能改為HQL方式執(zhí)行,因?yàn)樾枰M(jìn)行級(jí)聯(lián)刪除
	 * @param siteid
	 * @param linkid
	 * @return
	 * @throws SQLException
	 */
	public static void delete(int siteid, int album_id){
		AlbumBean album = (AlbumBean)getBean(AlbumBean.class, album_id);
		if(album!=null && album.getSite().getId()==siteid)
			delete(album);
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人97人人超碰人人99| 国产精品中文欧美| 欧美三级乱人伦电影| 亚洲综合色丁香婷婷六月图片| 色先锋资源久久综合| 亚洲国产精品欧美一二99| 91精品黄色片免费大全| 蜜桃视频第一区免费观看| 久久蜜桃一区二区| av亚洲精华国产精华精| 亚洲一区二区3| 日韩视频在线一区二区| 国产999精品久久| 亚洲激情五月婷婷| 在线播放欧美女士性生活| 激情欧美一区二区| 亚洲日本在线天堂| 欧美一区二区三区免费在线看| 激情伊人五月天久久综合| 中文字幕在线不卡视频| 欧美日韩国产中文| 成人自拍视频在线观看| 亚洲一区二区三区美女| 久久日一线二线三线suv| 91同城在线观看| 久久国产精品无码网站| 自拍偷拍欧美精品| 欧美岛国在线观看| 99久久国产综合精品色伊| 日韩精品91亚洲二区在线观看| 国产视频一区在线观看| 欧美视频一区二区三区在线观看| 国产一区免费电影| 亚洲一区电影777| 国产精品无遮挡| 日韩欧美三级在线| 色哟哟一区二区| 国产成人欧美日韩在线电影| 亚洲mv在线观看| 亚洲欧洲一区二区在线播放| 日韩精品中午字幕| 欧美视频一二三区| 91影视在线播放| 国产一区二区电影| 视频一区二区不卡| 亚洲色图一区二区三区| 久久精品免费在线观看| 欧美一区二区三区思思人| 在线观看网站黄不卡| 成人一区二区三区中文字幕| 美女网站色91| 丝瓜av网站精品一区二区| 国产精品久久久久影院色老大 | 欧美乱妇23p| 成人av资源下载| 国产乱码一区二区三区| 秋霞影院一区二区| 视频一区欧美日韩| 亚洲国产一区二区三区| 樱桃视频在线观看一区| 亚洲欧美日韩中文播放| 国产精品乱码一区二三区小蝌蚪| 日韩欧美一级在线播放| 欧美一区二区三区免费| 777奇米四色成人影色区| 欧美日韩电影在线| 欧美日韩在线免费视频| 欧美视频一区在线| 欧美撒尿777hd撒尿| 欧美在线视频全部完| 在线观看区一区二| 欧美中文字幕一二三区视频| 日本韩国欧美在线| 在线亚洲人成电影网站色www| 91蜜桃免费观看视频| 99国产麻豆精品| 91美女片黄在线| 在线观看视频一区| 欧美日韩性生活| 在线成人av影院| 精品剧情v国产在线观看在线| 欧美成人猛片aaaaaaa| 2021国产精品久久精品| 久久久青草青青国产亚洲免观| 久久久久一区二区三区四区| 日本一区二区三区在线观看| 欧美激情一区二区在线| 亚洲色图都市小说| 亚洲制服丝袜av| 免费在线观看一区| 国产精品一品二品| av成人免费在线观看| 色天天综合色天天久久| 在线播放91灌醉迷j高跟美女| 欧美一级免费大片| 久久久美女毛片| 亚洲色图在线播放| 天天做天天摸天天爽国产一区| 久热成人在线视频| 成人一区二区三区中文字幕| 日本久久电影网| 日韩一区二区三区四区| 国产欧美1区2区3区| 亚洲在线视频免费观看| 奇米亚洲午夜久久精品| 国产高清不卡二三区| 91精品福利视频| 日韩亚洲欧美一区二区三区| 久久一二三国产| 亚洲另类春色国产| 激情六月婷婷久久| 色婷婷综合中文久久一本| 欧美一区二视频| 国产精品久久久久桃色tv| 日韩中文字幕亚洲一区二区va在线 | 国产一区二区在线免费观看| www.日韩av| 日韩亚洲欧美在线| 亚洲免费视频中文字幕| 蜜臀久久久99精品久久久久久| 成人三级在线视频| 欧美精品久久久久久久多人混战| 日本一区二区三区四区| 免费日韩伦理电影| 色视频欧美一区二区三区| 欧美精品一区二区三区蜜臀| 亚洲视频免费在线| 国产呦萝稀缺另类资源| 欧洲一区在线电影| 国产精品久久久久久久浪潮网站| 蜜桃av一区二区在线观看| 99精品久久只有精品| 久久久国产精品麻豆| 日韩国产欧美视频| 在线观看91精品国产入口| 国产精品色在线观看| 狠狠色综合日日| 欧美二区乱c少妇| 亚洲美女屁股眼交3| 国产成人精品免费看| 日韩你懂的在线观看| 日韩中文字幕一区二区三区| 欧洲色大大久久| 亚洲欧美激情在线| 懂色av一区二区三区蜜臀| 精品美女在线播放| 日本欧美一区二区三区乱码| 色噜噜久久综合| 日韩久久一区二区| 成人av电影免费观看| 欧美激情中文不卡| 国产成人综合亚洲91猫咪| 久久综合丝袜日本网| 久久国产精品一区二区| 欧美一区二区三区四区视频| 天天综合天天综合色| 欧美精品乱码久久久久久按摩| 亚洲乱码日产精品bd | 一本到不卡精品视频在线观看| 国产精品久久久久影院老司| 国产精品99久| 国产三级三级三级精品8ⅰ区| 精品午夜久久福利影院| 欧美电影免费观看高清完整版在| 日本不卡123| 精品久久免费看| 国产麻豆一精品一av一免费| 精品国一区二区三区| 国产一区在线看| 国产亚洲精品精华液| 成人免费看的视频| 亚洲天堂网中文字| 欧美日韩在线电影| 免费看欧美女人艹b| 精品国产欧美一区二区| 国产精品91一区二区| 国产精品久久久久久久久免费丝袜| 成人免费观看av| 亚洲精品五月天| 欧美日韩国产a| 毛片一区二区三区| 久久久久久黄色| av电影在线观看一区| 亚洲一线二线三线视频| 欧美精品一二三| 国产一区二区三区黄视频| 欧美极品少妇xxxxⅹ高跟鞋| 91香蕉国产在线观看软件| 偷窥少妇高潮呻吟av久久免费| 欧美一区三区二区| 国产91综合网| 亚洲午夜久久久久| 欧美精品一区二区三区四区| 波多野结衣中文字幕一区二区三区| 亚洲欧美aⅴ...| 日韩一级片在线播放| 丁香五精品蜜臀久久久久99网站| 亚洲精品乱码久久久久久| 欧美一级二级三级蜜桃| 99这里只有精品|