目录
由于都是很固定的操作,写流程的时候实在是无从下手,代码甚至可以复制进新项目,所以这一篇以代码实现为主
1.1路线列表分页查询
/**
* 分页查询
* */
public void pageQuery(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String cidStr = request.getParameter("cid");
String pageSizeStr = request.getParameter("pageSize");
String currentPageStr = request.getParameter("currentPage");
String rname = request.getParameter("rname");
if (rname != null && rname.length() > 0 && !"null".equals(rname)) {
rname = new String(rname.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8);
}
int cid = 0;
if (cidStr != null && cidStr.length() > 0 && !"null".equals(cidStr)) {
cid = Integer.parseInt(cidStr);
}
int pageSize = 0;//每页显示条数,如果前端的传参为空,则指定为5条
if (pageSizeStr != null && pageSizeStr.length() > 0) {
pageSize = Integer.parseInt(pageSizeStr);
}else {
pageSize = 4;
}
int currentPage = 0;//当前页码,如果传参为空,则指定为第一页
if(currentPageStr != null && currentPageStr.length() > 0) {
currentPage = Integer.parseInt(currentPageStr);
}else {
currentPage = 1;
}
PageBean<Route> pageBean = routService.pageQuery(cid, pageSize, currentPage,rname);
System.out.println(rname+"----1");
writeValue(pageBean,response);
}
1.2,分页查询service
/**
* 分页查询
* */
@Override
public PageBean<Route> pageQuery(int cid, int pageSize, int currentPage, String rname) {
PageBean<Route> pageBean = new PageBean<Route>();
//查询出来的总条目数
int totalCurrent = routeDao.totalCurrent(cid,rname);
pageBean.setTotalCount(totalCurrent);
//计算总页数
int totalPage = totalCurrent % pageSize == 0 ? totalCurrent / pageSize : (totalCurrent / pageSize) + 1 ;
pageBean.setTotalPage(totalPage);
//每页显示的条数
pageBean.setPageSize(pageSize);
//当前页码
pageBean.setCurrentPage(currentPage);
//分页查询的start
int start = (currentPage * pageSize) - pageSize;
//查所有数据
List<Route> routes = routeDao.routeFindAll(cid, start, pageSize,rname);
pageBean.setList(routes);
return pageBean;
}
1.3,分页查询总条目dao
public int totalCurrent(int cid, String rname) {
String sql = "select count(*) from tab_route where 1 = 1 ";
StringBuilder sb = new StringBuilder(sql);
List params = new ArrayList();
if (cid != 0) {
sb.append(" and cid = ? ");
params.add(cid);
}
if (rname != null && rname.length() > 0 && !"null".equals(rname)) {
sb.append(" and rname like ? ");
params.add("%"+rname+"%");
}
sql = sb.toString();
Integer integer = template.queryForObject(sql, Integer.class, params.toArray());
return integer;
}
1.4,分页查询数据dao
@Override
public List<Route> routeFindAll(int cid, int start, int pageSize, String rname) {
String sql = "select * from tab_route where 1 = 1 ";
StringBuilder sb = new StringBuilder(sql);
List params = new ArrayList();
if (cid != 0) {
sb.append(" and cid = ? ");
params.add(cid);
}
//对rname做判断 因为在前端rname加了‘’后传递的所以 !null 无法判断 而!"null"可以判断
if (rname != null && rname.length() > 0 && !"null".equals(rname)) {
sb.append(" and rname like ? ");
params.add("%"+rname+"%");
}
sb.append(" limit ? , ? ");
params.add(start);
params.add(pageSize);
sql = sb.toString();
System.out.println(sql+"----3");
List<Route> route = template.query(sql, new BeanPropertyRowMapper<Route>(Route.class), params.toArray());
return route;
}
1.5 查询详情页
/**
* 根据id查询一个线路的详细信息
* */
public void findOne(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String rid = request.getParameter("rid");
Route route = routService.findOne(rid);
writeValue(route,response);
}
1.6 详情页service
@Override
public Route findOne(String rid) {
//根据id查询route表中的route对象
Route route = routeDao.findOne(Integer.parseInt(rid));
//根据route的id查询图片集合信息
List<RouteImg> byImg = route_imgDao.findByImg(Integer.parseInt(rid));
route.setRouteImgList(byImg);
Seller byId = sellerDao.findById(route.getSid());
route.setSeller(byId);
return route;
}
}
1.7 详情页dao
@Override
public Route findOne(int rid) {
String sql = "select * from tab_route where rid = ? ";
return template.queryForObject(sql,new BeanPropertyRowMapper<Route>(Route.class),rid);
}
}
1.8 查图片
/**
* @ClassName Route_imgDaoImpl
* @Description
* @Author Yanghao2
* @Date 2021/11/26 16:12
* @Version V1.0
*/
public class Route_imgDaoImpl implements Route_imgDao {
JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
@Override
public List<RouteImg> findByImg(int rid) {
String sql = "select * from tab_route_img where rid = ? ";
List<RouteImg> routeImgs = template.query(sql, new BeanPropertyRowMapper<RouteImg>(RouteImg.class),rid);
return routeImgs;
}
}
1.9查sellerMsg
/**
* @ClassName SellerDaoImpl
* @Description
* @Author Yanghao2
* @Date 2021/11/26 16:21
* @Version V1.0
*/
public class SellerDaoImpl implements SellerDao {
JdbcTemplate template = new JdbcTemplate(JDBCUtils.getDataSource());
@Override
public Seller findById(int sid) {
String sql = "select * from tab_seller where sid = ? ";
Seller seller = template.queryForObject(sql, new BeanPropertyRowMapper<Seller>(Seller.class),sid);
return seller;
}
}
2.0收藏管理
2.1判断当前用户是否收藏
/**
* 查当前用户是否收藏
* */
public void findByUidAndRid(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String rid = request.getParameter("rid");
User user = (User) request.getSession().getAttribute("user");
int uid;
if (user == null) {
uid = 0;
}else{
uid = user.getUid();
}
boolean isFavorite;
Favorite favorite = favoriteService.isFavorite(uid, Integer.parseInt(rid));
if (favorite == null) {
isFavorite = false;
}else {
isFavorite = true;
}
writeValue(isFavorite, response);
}
2.2判断当前用户是否收藏service
@Override
public Favorite isFavorite(int uid, int rid) {
return favoriteDao.findByUidAndRid(uid, rid);
}
2.2判断当前用户是否收藏dao
public Favorite findByUidAndRid(int uid, int rid) {
Favorite favorite = null;
try {
String sql = "select * from tab_favorite where uid = ? and rid = ? ";
favorite = template.queryForObject(sql, new BeanPropertyRowMapper<Favorite>(Favorite.class), uid, rid);
return favorite;
} catch (DataAccessException e) {
System.out.println("未查询到数据");
}
return favorite;
}
2.3查收藏数
/**
* 查总的收藏数
* */
public void findCount(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String rid = request.getParameter("rid");
int count = favoriteService.findCount(Integer.parseInt(rid));
writeValue(count,response);
}
2.4查收藏数service
@Override
public int findCount(int rid) {
return favoriteDao.findCount(rid);
}
2.5查收藏数dao
@Override
public int findCount(int rid) {
String sql = "select count(*) from tab_favorite where rid = ? ";
Integer integer = template.queryForObject(sql, Integer.class, rid);
return integer;
}
2.6添加收藏
/**
* 添加收藏
* */
public void addFavorite(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String rid = request.getParameter("rid");
User user = (User) request.getSession().getAttribute("user");
int uid;
if (user == null) {
return;
}else {
uid = user.getUid();
}
favoriteService.addFavorite(Integer.parseInt(rid),uid);
}
2.7添加收藏service
@Override
public void addFavorite(int rid, int uid) {
favoriteDao.addFavorite(rid,uid);
}
2.8添加收藏dao
@Override
public void addFavorite(int rid, int uid) {
String sql = "insert into tab_favorite values (?,?,?)";
template.update(sql,rid,new Date(),uid);
}
2.9删除收藏
/**
* 删除收藏
* */
public void removeFavorite(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String rid = request.getParameter("rid");
User user = (User) request.getSession().getAttribute("user");
int uid;
if (user == null) {
return;
}else {
uid = user.getUid();
}
favoriteService.removeFavorite(Integer.parseInt(rid),uid);
}
2.10删除收藏service
@Override
public void removeFavorite(int rid, int uid) {
favoriteDao.removeFavorite(rid, uid);
}
2.11删除收藏dao
@Override
public void removeFavorite(int rid, int uid) {
/*DELETE FROM 表名称 WHERE 列名称 = 值*/
String sql = "delete from tab_favorite where rid = ? and uid = ? ";
template.update(sql,rid,uid);
}
2.12前端
这个超级多,但是大多数都是拼字符串
<script>
$(document).ready(function() {
//自动播放
// var timer = setInterval("auto_play()", 5000);
goImag()
});
//自动轮播方法
function auto_play() {
var cur_index = $('.prosum_left dd').find('a.cur_img').index();
cur_index = cur_index - 1;
var num = $('.little_img').length;
var max_index = 3;
if ((num - 1) < 3) {
max_index = num - 1;
}
if (cur_index < max_index) {
var next_index = cur_index + 1;
var big_pic = $('.little_img:eq(' + next_index + ')').data('bigpic');
$('.little_img').removeClass('cur_img');
$('.little_img:eq(' + next_index + ')').addClass('cur_img');
$('.big_img').attr('src', big_pic);
} else {
var big_pic = $('.little_img:eq(0)').data('bigpic');
$('.little_img').removeClass('cur_img');
$('.little_img:eq(0)').addClass('cur_img');
$('.big_img').attr('src', big_pic);
}
}
function goImag() {
//焦点图效果
//点击图片切换图片
$('.little_img').on('mousemove', function() {
$('.little_img').removeClass('cur_img');
var big_pic = $(this).data('bigpic');
$('.big_img').attr('src', big_pic);
$(this).addClass('cur_img');
});
//上下切换
var picindex = 0;
var nextindex = 4;
$('.down_img').on('click',function(){
var num = $('.little_img').length;
if((nextindex + 1) <= num){
$('.little_img:eq('+picindex+')').hide();
$('.little_img:eq('+nextindex+')').show();
picindex = picindex + 1;
nextindex = nextindex + 1;
}
});
$('.up_img').on('click',function(){
var num = $('.little_img').length;
if(picindex > 0){
$('.little_img:eq('+(nextindex-1)+')').hide();
$('.little_img:eq('+(picindex-1)+')').show();
picindex = picindex - 1;
nextindex = nextindex - 1;
}
});
}
$(function () {
/*
* <dd>
<a class="up_img up_img_disable"></a>
<a title="" class="little_img" data-bigpic="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size4/201703/m40920d0669855e745d97f9ad1df966ebb.jpg">
<img src="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size2/201703/m20920d0669855e745d97f9ad1df966ebb.jpg">
</a>
<a title="" class="little_img cur_img" data-bigpic="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size4/201703/m49788843d72171643297ccc033d9288ee.jpg">
<img src="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size2/201703/m29788843d72171643297ccc033d9288ee.jpg">
</a>
<a title="" class="little_img" data-bigpic="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size4/201703/m4531a8dbceefa2c44e6d0e35627cd2689.jpg">
<img src="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size2/201703/m2531a8dbceefa2c44e6d0e35627cd2689.jpg">
</a>
<a title="" class="little_img" data-bigpic="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size4/201703/m46d8cb900e9f6c0a762aca19eae40c00c.jpg">
<img src="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size2/201703/m26d8cb900e9f6c0a762aca19eae40c00c.jpg">
</a>
<a title="" class="little_img" data-bigpic="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size4/201703/m45ea00f6eba562a767b5095bbf8cffe07.jpg" style="display:none;">
<img src="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size2/201703/m25ea00f6eba562a767b5095bbf8cffe07.jpg">
</a>
<a title="" class="little_img" data-bigpic="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size4/201703/m4265ec488cd1bc7ce749bc8c9b34b87bc.jpg" style="display:none;">
<img src="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size2/201703/m2265ec488cd1bc7ce749bc8c9b34b87bc.jpg">
</a>
<a title="" class="little_img" data-bigpic="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size4/201703/m4e7e964909d7dd1a9f6e5494d4dc0c847.jpg" style="display:none;">
<img src="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size2/201703/m2e7e964909d7dd1a9f6e5494d4dc0c847.jpg">
</a>
<a title="" class="little_img" data-bigpic="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size4/201703/m467db00e1b76718fab0fe8b96e10f4d35.jpg" style="display:none;">
<img src="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size2/201703/m267db00e1b76718fab0fe8b96e10f4d35.jpg">
</a>
<a title="" class="little_img" data-bigpic="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size4/201703/m487bbbc6e43eba6aa6a36cc1a182f7a20.jpg" style="display:none;">
<img src="http://www.jinmalvyou.com/Public/uploads/goods_img/img_size2/201703/m287bbbc6e43eba6aa6a36cc1a182f7a20.jpg">
</a>
<a class="down_img down_img_disable" style="margin-bottom: 0;"></a>
</dd>
* */
var rid = getParameter("rid");
$.get("routServlet/findOne",{rid:rid},function (route) {
$("#rname").html(route.rname);
$("#price").html("¥"+route.price);
$("#routeIntroduce").html(route.routeIntroduce);
$("#sname").html(route.seller.sname);
$("#consphone").html(route.seller.consphone);
$("#address").html(route.seller.address);
var ddstr = '<a class="up_img up_img_disable"></a>';
for (var i = 0; i < route.routeImgList.length; i ++) {
var astr ;
var dtstr;
if (i == 0) {
dtstr = '<img alt="" class="big_img" src="'+route.routeImgList[i].bigPic+'">\n'
}
if (i >=4 ) {
astr = '<a title="" class="little_img" data-bigpic="'+route.routeImgList[i].bigPic+'" style=\"display:none;\">\n' +
' <img src="'+route.routeImgList[i].smallPic+'">\n' +
' </a>'
}else {
astr = '<a title="" class="little_img" data-bigpic="'+route.routeImgList[i].bigPic+'">\n' +
' <img src="'+route.routeImgList[i].smallPic+'">\n' +
' </a>'
}
ddstr += astr;
}
ddstr += '<a class="down_img down_img_disable" style="margin-bottom: 0;"></a>';
$("#dt").html(dtstr);
$("#dd").html(ddstr);
goImag()
})
})
$(function () {
var rid = getParameter("rid");
$.get("routServlet/findByUidAndRid",{rid:rid},function (data) {
if (data) {
$("#no_favorite").hide()
$("#yes_favorite").show()
}else {
$("#yes_favorite").hide()
$("#no_favorite").show()
}
})
$.get("routServlet/findCount",{rid:rid},function (count) {
$("#span_count").html("已收藏"+count+ "次")
})
})
function addFavorite() {
var rid = getParameter("rid");
$.get("routServlet/addFavorite",{rid:rid},function () {
$.get("routServlet/findByUidAndRid",{rid:rid},function (data) {
if (data) {
$("#no_favorite").hide()
$("#yes_favorite").show()
}else {
$("#yes_favorite").hide()
$("#no_favorite").show()
}
})
$.get("routServlet/findCount",{rid:rid},function (count) {
$("#span_count").html("已收藏"+count+ "次")
})
})
}
function removeFavorite() {
var rid =getParameter("rid");
$.get("routServlet/removeFavorite",{rid:rid},function () {
$.get("routServlet/findByUidAndRid",{rid:rid},function (data) {
if (data) {
$("#no_favorite").hide()
$("#yes_favorite").show()
}else {
$("#yes_favorite").hide()
$("#no_favorite").show()
}
})
$.get("routServlet/findCount",{rid:rid},function (count) {
$("#span_count").html("已收藏"+count+ "次")
})
})
}
</script>