您的位置:首页 > 其它

hibernate查询和jdbc查询

2015-09-15 13:48 281 查看
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());
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: