hibernate查詢和jdbc查詢

package com.weinet.***.dao;

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

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import org.springframework.jdbc.support.rowset.SqlRowSet;
import org.springframework.stereotype.Component;

import com.weinet.***.model.FixedProperty;
import com.weinet.***.model.MemberSource;
import com.weinet.***.ui.***UI;
import com.weinet.***.utils.PaginatedResult;

/**
 * 會員來源
 * @author ZJ
 *
 */
@Component("MemberSourceDAO")
public class MemberSourceDAO extends BasicDAO {
	
	@PersistenceContext
	EntityManager entityManager;
	
	/**
	 * 分頁查詢財產
	 * @param pageNo
	 * @param pageSize
	 * @param queryName 根據來源名稱查詢
	 * @return
	 */
	public PaginatedResult<MemberSource> searchMemberSource(int pageNo, int pageSize, String queryName){
		
		PaginatedResult<MemberSource> paginatedResult = new PaginatedResult<MemberSource>(pageNo, pageSize);
		calculateLines(paginatedResult, queryName);
		
		String sql = "select a.id, a.white_label_id, a.store_id, a.source_name, a.source_short_name, a.creator, "
				+ " a.create_date, a.url, a.director, a.phone_number, a.start_date, a.end_date, a.deleted, a.remark "
				+ " from member_source a "
				+" where a.deleted=0 and a.white_label_id= ";
		if((queryName==null)||queryName.equals("")){
			StringBuilder sqlSelect = new StringBuilder(sql);
			sqlSelect.append(***UI.getCurrentUserWhiteLabel().getId());
			sqlSelect.append(" order by a.id desc ");
			sqlSelect.append(" limit ");
			sqlSelect.append((pageNo-1)*pageSize);
			sqlSelect.append(",");
			sqlSelect.append(pageSize);
			SqlRowSet rs = getMysqlJdbcTemplate().queryForRowSet(sqlSelect.toString());
			readMemberSource(paginatedResult, rs);
		}else{
			StringBuilder sqlSelect = new StringBuilder(sql);
			sqlSelect.append(***UI.getCurrentUserWhiteLabel().getId());
			sqlSelect.append(" and a.source_name like ");
			sqlSelect.append(" '%"+queryName.trim()+"%' ");
			sqlSelect.append(" order by a.id desc ");
			sqlSelect.append(" limit ");
			sqlSelect.append((pageNo-1)*pageSize);
			sqlSelect.append(",");
			sqlSelect.append(pageSize);
			SqlRowSet rs = getMysqlJdbcTemplate().queryForRowSet(sqlSelect.toString());
			readMemberSource(paginatedResult, rs);
		}
		return paginatedResult;
	}

	public void readMemberSource(PaginatedResult<MemberSource> paginatedResult,
			SqlRowSet rs) {
		List<MemberSource> list = new ArrayList<MemberSource>();
		while(rs.next()){
			MemberSource memberSource = new MemberSource();
			memberSource.setId(rs.getLong(1));
			memberSource.setWhiteLabelId(rs.getInt(2));
			memberSource.setStoreId(rs.getInt(3));
			memberSource.setSourceName(rs.getString(4));
			memberSource.setSourceShortName(rs.getString(5));
			memberSource.setCreator(rs.getString(6));
			memberSource.setCreateDate(rs.getDate(7));
			memberSource.setUrl(rs.getString(8));
			memberSource.setDirector(rs.getString(9));
			memberSource.setPhoneNumber(rs.getString(10));
			memberSource.setStartDate(rs.getDate(11));
			memberSource.setEndDate(rs.getDate(12));
			memberSource.setDeleted(rs.getBoolean(13));
			memberSource.setRemark(rs.getString(14));
			list.add(memberSource);
			
		}
		paginatedResult.setResultList(list);
	}

	public void calculateLines(PaginatedResult<MemberSource> paginatedResult, String queryName) {
		
		String queryTotalCount = "select count(a) from MemberSource a "
				+" where a.deleted=0 and a.whiteLabelId=?1 ";
		if((queryName==null)||queryName.equals("")){
			Query query = entityManager.createQuery(queryTotalCount);
			query.setParameter(1, ***UI.getCurrentUserWhiteLabel().getId());
			paginatedResult.setTotalCount((long) query.getSingleResult());
		}else{
			queryTotalCount = queryTotalCount + " and a.sourceName=?2 ";
			Query query = entityManager.createQuery(queryTotalCount);
			query.setParameter(1, ***UI.getCurrentUserWhiteLabel().getId());
			query.setParameter(2, queryName.trim());
			paginatedResult.setTotalCount((long) query.getSingleResult());
		}
	}
	
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章