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()); } } }
相关文章推荐
- Boss 怒改需求,产品经理该怎么办?
- 【转】 数学建模十大经典算法漫谈
- apk反编译
- 基于Jpcap的TCP/IP数据包分析(一)
- unix/linux共享内存应用与陷阱
- C#获得硬件信息(转载)
- 使用XCA(X Certificate and key management)可视化项目经理SSL 凭证(4)--凭借自身的凭证管理中心的定义(Certificate Authority)签名证书申请
- 文件上传之黑名单验证绕过
- Android之根据Uri获得图片或视频文件路径(解决4.4以上版本得不到路径的情况)
- OPEN(SAP) UI5 学习入门系列之三:MVC (下) - 视图与控制器
- C语言link过程详解(多文件编译过程)
- 让IE8浏览器支持Canvas
- Android之根据Uri获得图片或视频文件路径(解决4.4以上版本得不到路径的情况)
- 五个你可能闻所未闻的出色的 Ubuntu 替代发行版
- 揭秘12306技术改造(三):传统框架云化迁移到内存数据平台
- jquery常用案例
- zoj 3471 Most Powerful(状态压缩dp)
- YII的自定义路由规则类的使用(初级)
- 磁盘管理及文件系统管理
- libevent编程之bufferevent使用