搜索分页思维导图:
步骤:
(1)用户输入路线名称关键字,后台将数据返回给前台(2)前台使用分页显示(3)分页工具条(4)分页列表
RouteServiceTest
public class TestRouteService {
@Test
public void test01(){
RouteService routeService
= new RouteService();
PageBean pageBean
= routeService
.search("宁夏",1,20);
System
.out
.println(pageBean
);
}
}
PageBean
public class PageBean {
private int totalCount
;
private int pageSize
;
private int totalPage
;
private int currentPage
;
private List
<Route> list
;
Route
从资料里面复制
public class Route {
private int rid
;
private String rname
;
private double price
;
private String routeIntroduce
;
private String rflag
;
private String rdate
;
private String isThemeTour
;
private int count
;
private int cid
;
private String rimage
;
private int sid
;
private String sourceId
;
RouteService
public class RouteService {
public PageBean
search(String keyword
, int currentPage
, int pageSize
) {
PageBean pb
= new PageBean();
pb
.setCurrentPage(currentPage
);
pb
.setPageSize(pageSize
);
RouteDao routeDao
= MySessionUtils2
.getMapper(RouteDao
.class);
int totalCount
= routeDao
.findCountByName("%" + keyword
+ "%");
pb
.setTotalCount(totalCount
);
int totalPage
= totalCount
% pageSize
== 0 ? totalCount
/ pageSize
: totalCount
/ pageSize
+ 1;
pb
.setTotalPage(totalPage
);
int start
= (currentPage
- 1) * pageSize
;
List
<Route> list
= routeDao
.findPageByName("%" + keyword
+ "%", start
, pageSize
);
pb
.setList(list
);
return pb
;
}
}
RouteDao
public interface RouteDao {
int findCountByName(String keyword
);
List
<Route> findPageByName(String keyword
, int start
, int pageSize
);
}
com\wzx\dao\RouteDao.xml
<select id="findPageByName" resultType="route">
select * from tab_route where rname like #{arg0} limit #{arg1},#{arg2};
</select>
核心配置文件
<mappers>
<mapper resource="com/wzx/dao/UserDao.xml"/>
<mapper resource="com/wzx/dao/CategoryDao.xml"/>
<mapper resource="com/wzx/dao/RouteDao.xml"/>
</mappers>
RouteServlet
@WebServlet("/routeServlet")
public class RouteServlet extends HttpServlet {
protected void doPost(HttpServletRequest request
, HttpServletResponse response
) throws ServletException
, IOException
{
doGet(request
,response
);
}
protected void doGet(HttpServletRequest request
, HttpServletResponse response
) throws ServletException
, IOException
{
String keyword
= request
.getParameter("keyword");
String currentPageStr
= request
.getParameter("currentPage");
String pageSizeStr
= request
.getParameter("pageSize");
int currentPage
= 1;
if (currentPageStr
!= null
&& currentPageStr
.length() > 0) {
try {
currentPage
= Integer
.parseInt(currentPageStr
);
} catch (Exception e
) {
e
.printStackTrace();
}
}
int pageSize
= 20;
if (pageSizeStr
!= null
&& pageSizeStr
.length() > 0) {
try {
pageSize
= Integer
.parseInt(pageSizeStr
);
} catch (Exception e
) {
e
.printStackTrace();
}
}
RouteService routeService
= new RouteService();
PageBean pb
= routeService
.search(keyword
,currentPage
,pageSize
);
ResponseInfo info
= new ResponseInfo();
info
.setCode(200);
info
.setData(pb
);
String json
= new ObjectMapper().writeValueAsString(info
);
response
.getWriter().println(json
);
}
}
测试//http://localhost:8080/lvyou_war_exploded/routeServlet?keyword=%E5%8C%97%E4%BA%AC¤tPage=1&pageSize=20
MyBatis的多参数传递
(1)Mybatis 支持 多参数传递(2)Dao方法 List findPage(String cid, int start, int pageSize);(3)映射文件配置 可使用参数出现的顺序号码引用参数(4)示例 第一个参数用arg0或param1表示 第二个参数用arg1或param2表示 arg从0开始计数,param从1开始计数