基于java的收藏排行功能之五:Dao层对数据库的操作&数据表设计

接上一篇

11:dao接口

package cn.itcast.travel.dao;

import cn.itcast.travel.domain.Route;

import java.util.List;

public interface RouteDao {
    public List<Route> findRouteByPage(int cid, int startPage, int pageSize, String sname, int ihighPrice, int ilowPrice, int order);
    public int findTotalCount(int cid, String sname, int ihighPrice, int ilowPrice, int order);

}

12dao实现类:

package cn.itcast.travel.dao.impl;

import cn.itcast.travel.dao.RouteDao;
import cn.itcast.travel.domain.Route;
import cn.itcast.travel.util.JDBCUtils;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;

import java.util.ArrayList;
import java.util.List;

public class RouteDaoImp implements RouteDao{
   private JdbcTemplate template=new JdbcTemplate(JDBCUtils.getDataSource());
  
    @Override
    public List<Route> findRouteByPage(int cid, int startPage, int pageSize, String cname, int highPrice, int lowPrice, int order) {
        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);
        }
        if(cname!=null&&cname.length()>0&&!"null".equals(cname)){
            sb.append(" and rname like ? ");
            params.add("%"+cname+"%");
        }
        if(highPrice!=-1){
            sb.append(" and price < ?");
            params.add(highPrice);
        }
        if(lowPrice!=-1){
                sb.append(" and price > ?");
                params.add(lowPrice);

        }
        if(order==1){
            sb.append(" order by count desc ");
        }else if(order==2) {
            sb.append(" order by rdate desc ");
        }else if(order==3){
            sb.append(" order by isThemeTour  desc ");
        }
        sb.append(" limit ? , ? ");
        params.add(startPage);
        params.add(pageSize);
        sql=sb.toString();


        System.out.println(sql);
        System.out.println(params);

        List<Route> list=template.query(sql,new BeanPropertyRowMapper<Route>(Route.class),params.toArray());
        System.out.println("RouteDaoImp的:"+list);
        return list ;
    }
 
    @Override
    public int findTotalCount(int cid, String cname, int highPrice, int lowPrice, int order) {
        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(cname!=null&&cname.length()>0&&!"null".equals(cname)){
            sb.append(" and rname like ? ");
            params.add("%"+cname+"%");
        }

        if(highPrice!=-1){
            sb.append(" and price < ?");
            params.add(highPrice);
        }
        if(lowPrice!=-1){
            sb.append(" and price > ?");
            params.add(lowPrice);

        }
        if(order==1){
            sb.append(" order by count desc ");
        }
        sql=sb.toString();

        Integer count = template.queryForObject(sql, Integer.class, params.toArray());
        return count;
    }

}

13数据库表的设计

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值