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());
		}
	}
	
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值