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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? musicdao.java

?? 個人Blog java編寫的Blog可以直接使用!
?? JAVA
字號:
/*
 *  MusicDAO.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 (javayou@gmail.com)
 *  http://dlog4j.sourceforge.net
 */
package com.liusoft.dlog4j.dao;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

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

import com.liusoft.dlog4j.CapacityExceedException;
import com.liusoft.dlog4j.base.Orderable;
import com.liusoft.dlog4j.beans.MusicBean;
import com.liusoft.dlog4j.beans.MusicBoxBean;
import com.liusoft.dlog4j.beans.SiteBean;
import com.liusoft.dlog4j.search.SearchDataProvider;

/**
 * 音樂數據訪問接口
 * @author Winter Lau
 */
public class MusicDAO extends DAO implements SearchDataProvider{

	public final static int MAX_MUSICBOX_COUNT = 20;

	/**
	 * 增加音樂的欣賞次數
	 * @param music_id
	 * @param incCount
	 * @return
	 */
	public static int incViewCount(int incCount, int[] music_ids){
		StringBuffer hql = new StringBuffer("UPDATE MusicBean d SET d.viewCount=d.viewCount+? WHERE d.id IN (");
		for(int i=0;i<music_ids.length;i++){
			if(i > 0) hql.append(',');
			hql.append('?');
		}
		hql.append(')');
		try{
			Session ssn = getSession();
			beginTransaction();
			Query q = ssn.createQuery(hql.toString());
			q.setInteger(0, incCount);
			for(int i=1;i<=music_ids.length;i++){
				q.setParameter(i, new Integer(music_ids[i-1]));
			}
			int er = q.executeUpdate();
			commit();
			return er;
		}catch(HibernateException e){
			rollback();
			throw e;
		}
	}
	
	/**
	 * 根據編號獲取歌曲信息
	 * @param ids
	 * @return
	 */
	public static List listSongs(List ids){
		Session ssn = getSession();
		StringBuffer hql = new StringBuffer("FROM MusicBean m WHERE m.id IN (");
		int i=0;
		for(;i<ids.size();i++){
			hql.append("?,");
		}
		hql.append("?) ORDER BY m.id DESC");			
		Query q = ssn.createQuery(hql.toString());
		for(i=0;i<ids.size();i++){
			int id = ((Number)ids.get(i)).intValue();
			q.setInteger(i, id);
		}
		q.setInteger(i, -1);
		return q.list();
	}
	
	/**
	 * 搜索歌曲
	 * @param site
	 * @param key
	 * @return
	 */
	public static List search(String key){
		Session ssn = getSession();
		Query q = ssn.getNamedQuery("SEARCH_MUSIC");
		String pattern = '%' + key + '%';
		q.setString("key", pattern);
		q.setMaxResults(20);
		List res = q.list();
		List songs = new ArrayList();
		for(int i=0;res!=null&&i<res.size();i++){
			Object[] objs = (Object[])res.get(i);
			MusicBean mbean = new MusicBean();
			mbean.setTitle((String)objs[0]);
			mbean.setUrl((String)objs[1]);
			songs.add(mbean);
		}
		return songs;
	}
	
	/**
	 * 列出某個站點最新的N首歌曲
	 * @param siteid
	 * @param maxCount
	 * @return
	 */
	public static List listNewSongs(int siteid, int maxCount){
		return executeNamedQuery("LIST_NEW_MUSIC",-1,maxCount,siteid);
	}

	/**
	 * 列出某個站點最新的N首歌曲
	 * @param siteid
	 * @param maxCount
	 * @return
	 */
	public static List listSongsWithoutBox(int siteid){
		return findNamedAll("LIST_MUSIC_WITHOUT_BOX",siteid);
	}
	
	/**
	 * 添加歌曲
	 * @param mbean
	 */
	public static void addMusic(MusicBean mbean){
		Session ssn = getSession();
		try{
			beginTransaction();
			if(mbean.getStatus()==MusicBean.STATUS_NORMAL){
				if(mbean.getMusicBox()!=null)
					mbean.getMusicBox().incMusicCount(1);
			}
			ssn.save(mbean);
			commit();
		}catch(HibernateException e){
			e.printStackTrace();
			rollback();
			throw e;
		}
	}

	/**
	 * 刪除歌曲
	 * @param mbean
	 */
	public static void deleteMusic(MusicBean mbean){
		Session ssn = getSession();
		try{
			beginTransaction();
			if(mbean.getStatus()==MusicBean.STATUS_NORMAL){
				if(mbean.getMusicBox()!=null)
					mbean.getMusicBox().incMusicCount(-1);
			}
			//刪除引用該歌曲的日記背景音樂
			String hql = "UPDATE DiaryBean d SET d.bgSound = ? WHERE d.bgSound.id=?";
			executeUpdate(hql, new Object[]{null, new Integer(mbean.getId())});
			//刪除歌曲
			ssn.delete(mbean);
			commit();
		}catch(HibernateException e){
			rollback();
			throw e;
		}
	}

	/**
	 * 刪除音樂盒
	 * @param mbean
	 */
	public static void deleteMusicBox(MusicBoxBean mbean){
		delete(mbean);
	}

	/**
	 * 批量刪除歌曲
	 * @param mbean
	 */
	public static void deleteMusics(int siteid, int[] ids){
		Session ssn = getSession();
		try{
			StringBuffer hql = new StringBuffer("FROM MusicBean m WHERE m.site.id=? AND m.id IN (");
			StringBuffer hql2 = new StringBuffer("UPDATE DiaryBean d SET d.bgSound=? WHERE d.bgSound.id IN (");
			int i=0;
			for(;i<ids.length;i++){
				hql.append("?,");
				hql2.append("?,");
			}
			hql.append("?)");	
			hql2.append("?)");			
			Query q = ssn.createQuery(hql.toString());
			q.setInteger(0, siteid);
			i=0;
			for(;i<ids.length;i++){
				q.setInteger(i+1, ids[i]);
			}
			q.setInteger(i+1, ids[0]);
			List musics = q.list();
			if(musics.size()>0){
				beginTransaction();
				//清除日記中對該音樂的引用
				Query q2 = ssn.createQuery(hql2.toString());
				i=0;
				q2.setParameter(0, null);
				for(;i<ids.length;i++){
					q2.setInteger(i+1, ids[i]);
				}
				q2.setInteger(i+1, ids[0]);
				q2.executeUpdate();
				//刪除音樂
				for(i=0;i<musics.size();i++){
					MusicBean mbean = (MusicBean)musics.get(i);
					if(mbean.getMusicBox()!=null)
						mbean.getMusicBox().incMusicCount(-1);
					ssn.delete(mbean);
				}
				commit();
			}
		}catch(HibernateException e){
			rollback();
			throw e;
		}
	}
	
	/**
	 * 創建音樂盒
	 * @param mbox
	 * @param pos
	 * @param up
	 * @throws CapacityExceedException 
	 * @throws SQLException  
	 */
	public static void createBox(MusicBoxBean mbox, int pos, boolean up)
			 throws CapacityExceedException {
		Session ssn = getSession();
		int order_value = 1;
		if (pos > 0) {
			MusicBoxBean friend = (MusicBoxBean) ssn.get(MusicBoxBean.class,
					new Integer(pos));
			order_value = friend.getSortOrder();
		}
		mbox.setSortOrder(order_value - (up ? 1 : 0));
		try {
			beginTransaction();
			ssn.save(mbox);
			// 重新讀取鏈接列表,依照順序進行整理
			List links = findNamedAll("LIST_MUSICBOXES", mbox.getSite().getId());
			if (links.size() >= ConfigDAO.intValue(mbox.getSite().getId(),
					"MAX_MUSICBOX_COUNT", MAX_MUSICBOX_COUNT))
				throw new CapacityExceedException(links.size());
			if (links.size() > 1) {
				for (int i = 0; i < links.size(); i++) {					
					Orderable lb = (Orderable) links.get(i);
					executeNamedUpdate("UPDATE_MUSICBOX_ORDER", (i+1), lb.getId());
				}
			}
			commit();
		} catch (HibernateException e) {
			rollback();
			throw e;
		}
	}
	
	/**
	 * 返回某個站點的歌曲數
	 * @param site
	 * @return
	 */
	public static int getMusicCount(SiteBean site){
		if(site==null) return -1;
		return executeNamedStatAsInt("MUSIC_COUNT", site.getId());
	}
	
	/**
	 * 根據音樂編號獲取詳細資料
	 * @param mid
	 * @return
	 */
	public static MusicBean getMusicByID(int mid){
		if(mid <=0)
			return null;
		return (MusicBean)getBean(MusicBean.class, mid);
	}
	
	/**
	 * 根據音樂盒的編號獲取詳細信息
	 * @param mboxid
	 * @return
	 */
	public static MusicBoxBean getMusicBoxByID(int mboxid){
		if(mboxid < 1) 
			return null;
		return (MusicBoxBean)getBean(MusicBoxBean.class, mboxid);
	}

	/* (non-Javadoc)
	 * @see com.liusoft.dlog4j.search.SearchDataProvider#fetchAfter(java.util.Date)
	 */
	public List fetchAfter(Date beginTime) throws Exception {
		return findNamedAll("LIST_MUSIC_AFTER", new Object[]{beginTime, MusicBean.I_STATUS_NORMAL});
	}
	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美腿丝袜亚洲一区| a亚洲天堂av| 99在线热播精品免费| 欧美高清性hdvideosex| 久久久久国产精品麻豆| 亚洲一区二区视频在线观看| 国产呦精品一区二区三区网站| 91麻豆蜜桃一区二区三区| 欧美xxxxx牲另类人与| 亚洲综合久久av| 成人免费视频网站在线观看| 日韩一区二区三区在线视频| 最新不卡av在线| 丰满少妇在线播放bd日韩电影| 3atv一区二区三区| 亚洲精品免费看| proumb性欧美在线观看| 精品福利在线导航| 免费美女久久99| 在线观看91av| 五月婷婷综合网| 色妹子一区二区| 亚洲欧美日韩国产另类专区| 成人国产精品免费观看| 国产香蕉久久精品综合网| 久久精品国产一区二区三区免费看 | 欧美不卡一区二区三区| 夜夜嗨av一区二区三区| 91蜜桃在线免费视频| 欧美国产成人在线| 国产成人综合网站| 久久精品亚洲一区二区三区浴池| 青青草91视频| 日韩精品一区二区在线观看| 欧美aⅴ一区二区三区视频| 在线观看91av| 日韩电影在线免费观看| 欧美日韩精品欧美日韩精品一综合| 中文成人av在线| 成人一道本在线| 亚洲少妇中出一区| 91久久精品网| 一区二区三区视频在线看| 欧美亚洲自拍偷拍| 日韩精品五月天| 久久亚洲一级片| 91小视频免费看| 亚洲午夜久久久久中文字幕久| 在线一区二区观看| 丝袜美腿亚洲综合| 精品福利在线导航| 成人91在线观看| 亚欧色一区w666天堂| 欧美xfplay| 波多野结衣中文一区| 亚洲综合在线电影| 91麻豆精品国产| 国产成a人无v码亚洲福利| 亚洲人成伊人成综合网小说| 欧美日韩激情一区| 久久91精品久久久久久秒播| 国产精品网站导航| 精品视频一区二区不卡| 寂寞少妇一区二区三区| 中文字幕中文字幕在线一区| 欧美视频在线一区二区三区 | 国产美女视频一区| 国产另类ts人妖一区二区| 欧美高清在线视频| 国产a视频精品免费观看| 亚洲精品日韩一| 精品国产三级a在线观看| 91免费视频观看| 午夜激情综合网| 国产午夜精品理论片a级大结局| 91女神在线视频| 精品综合免费视频观看| 亚洲精品乱码久久久久久| 欧美电视剧免费全集观看| 91福利国产精品| 国产不卡视频在线观看| 午夜伊人狠狠久久| 综合欧美一区二区三区| 精品电影一区二区| 欧美日韩久久一区二区| www.亚洲国产| 久久99精品国产| 婷婷六月综合亚洲| 亚洲精品中文在线| 国产精品丝袜91| 亚洲精品在线一区二区| 欧美精品久久久久久久多人混战| 成人综合在线观看| 久久99精品久久久久久国产越南| 亚洲最大成人综合| 国产精品久久久久久久午夜片| 日韩欧美黄色影院| 欧美日韩国产a| 国产美女主播视频一区| 麻豆精品一区二区综合av| 亚洲午夜久久久久久久久电影网 | av高清久久久| 国产精品亚洲第一区在线暖暖韩国| 日韩精品视频网站| 午夜电影一区二区| 婷婷亚洲久悠悠色悠在线播放| 日韩毛片视频在线看| 国产精品高潮呻吟| 国产精品白丝在线| 1024亚洲合集| 亚洲欧美激情在线| 亚洲欧美激情小说另类| 一区二区三区在线看| 亚洲精品欧美二区三区中文字幕| 中文字幕在线观看不卡| 中文字幕日韩精品一区| 中文字幕日本不卡| 亚洲精品美腿丝袜| 午夜精品久久久久影视| 日韩中文字幕亚洲一区二区va在线 | 日韩在线一二三区| 日韩精品欧美成人高清一区二区| 天使萌一区二区三区免费观看| 偷拍一区二区三区四区| 日韩制服丝袜先锋影音| 秋霞午夜av一区二区三区| 玖玖九九国产精品| 激情五月婷婷综合网| 激情深爱一区二区| 国产成人啪免费观看软件| 成人成人成人在线视频| 99国产精品久久久久久久久久久 | 成人免费视频一区| 91视频免费播放| 欧美日韩精品福利| 日韩精品一区二区三区视频| 久久久不卡影院| 亚洲女女做受ⅹxx高潮| 视频一区欧美精品| 国产一区二区在线观看免费 | 亚洲精品成人少妇| 亚洲成人午夜影院| 狠狠色丁香婷综合久久| 成人黄色在线网站| 欧美日韩国产综合一区二区三区| 91精品国产欧美一区二区18 | 91猫先生在线| 91麻豆精品国产91久久久久久久久 | 精品少妇一区二区三区免费观看| 国产日韩视频一区二区三区| 亚洲欧美偷拍卡通变态| 日本在线不卡视频| 成人ar影院免费观看视频| 欧美色精品在线视频| 久久男人中文字幕资源站| 亚洲最新在线观看| 国产一区二区视频在线播放| 91久久一区二区| 亚洲精品一区二区三区蜜桃下载| 亚洲欧美视频在线观看视频| 国产一区二区在线看| 欧美日韩中文字幕精品| 欧美国产日韩精品免费观看| 丝袜美腿亚洲色图| 99在线精品视频| 精品999在线播放| 三级亚洲高清视频| 在线中文字幕不卡| 国产视频911| 日韩经典中文字幕一区| 99久久综合狠狠综合久久| 欧美成人在线直播| 一区二区成人在线| 国产高清在线精品| 欧美成人一区二区三区在线观看| 亚洲小说欧美激情另类| 99久久99久久综合| 国产欧美日本一区视频| 婷婷综合在线观看| 欧美性猛交xxxx乱大交退制版| 欧美激情一区三区| 国产麻豆9l精品三级站| 欧美一卡在线观看| 亚洲国产精品视频| 在线中文字幕不卡| 亚洲欧美日韩国产一区二区三区| 成人激情校园春色| 国产午夜精品一区二区三区视频 | 日本一区二区动态图| 精品一区二区久久| 欧美一级艳片视频免费观看| 亚洲国产美国国产综合一区二区| 99久久综合国产精品| 国产精品精品国产色婷婷| 国产成人综合网| 欧美激情综合在线| 99久久精品一区二区| 中文字幕综合网| 在线免费观看一区| 一区二区三区四区不卡在线|