@Override @Transactional(propagation = Propagation.NOT_SUPPORTED) public Page findByPage(Page page, Map paramsMap) { StringBuffer sb = new StringBuffer(); sb.append("from Course u where 1=1"); if (paramsMap.get("sname") != null&& !"".equals(paramsMap.get("sname"))) { sb.append(" and u.title like '%" + paramsMap.get("sname")+ "%'"); } if (paramsMap.get("sort") != null && !"".equals(paramsMap.get("sort"))) { sb.append(" " + paramsMap.get("sort")); } System.out.println(sb.toString()); List teaList = (sessionFactory.getCurrentSession().createQuery(sb .toString())).list(); int totl = teaList.size(); Query query = sessionFactory.getCurrentSession().createQuery( sb.toString()); query.setFirstResult((page.getPageNo() - 1) * page.getPageSize()); query.setMaxResults(page.getPageSize()); List employeeList = query.list(); page.setList(employeeList); page.setTotal(totl); return page; }
时间: 2024-03-04 21:53:18 浏览: 297
MappAndroidprj.rar_android开发_Java_
这是 CourseServiceImp 类中的一个方法,名为 findByPage。该方法使用了 @Override 和 @Transactional 注解,表示该方法是覆盖了父类的方法,并且需要进行事务处理。该方法接受两个参数,一个是 Page 对象,一个是 Map 对象。该方法的作用是根据参数中的条件进行分页查询课程信息。方法中首先定义了一个 StringBuffer 对象 sb,用于拼接 SQL 语句。然后根据传入的参数,拼接查询条件。如果 paramsMap 中的 sname 不为空,则在 SQL 语句中加入课程标题的模糊查询条件。如果 paramsMap 中的 sort 不为空,则在 SQL 语句中加入排序条件。然后输出拼接好的 SQL 语句。接着,使用 getCurrentSession 方法获取当前 Session 对象,执行 SQL 语句,得到查询结果列表。然后通过 totl 变量获取查询结果的总数。接着,定义一个 Query 对象,执行 SQL 语句,设置分页查询的起始位置和每页显示的记录数。然后执行查询,得到分页查询的结果,将结果设置到 Page 对象中,并设置总记录数。最后返回 Page 对象。
阅读全文