spring mvc汽车管理系统,代码笔记


-----------------------------------------------------java代码部分---------------------------------------------------------------
controller
扫描的类的注解类加注@controller
@Controller
public class CarCtr {

  
    @Autowired   
    private CarService carservice;

    public CarService getCarservice() {
 return carservice;
    }

    public void setCarservice(CarService carservice) {
 this.carservice = carservice;
    }

 // 查询
    @RequestMapping("query")
    public String query(HttpServletRequest request,PageUtils pageUtils) {
//pageUtils为工具类,将需要重复利用的一些类封装到一个类中,避免每次请求都执行一次新的操作,而代替的直接调用就可以了。
 
 int dataNum =carservice.pages();
 Carbean carbean = pageUtils.getQueryCarbean(request);
 Page page=pageUtils.getPage(request,dataNum);
 // 传参
 List<Carbean> carlist = carservice.query(carbean, page);
 // carlist组合查询时用于显示
 request.setAttribute("listall", carlist);// 参数注入
 return "query.jsp";

    }

-----
// 用于修改的显示
    @RequestMapping("querybyid")
    public String querybyid(HttpServletRequest request) {
 System.out.println("querybyid");
 String carid = request.getParameter("id");
 // 天数

 List<Carbean> carlist = carservice.querybyid(carid);

 Carbean carbean = carlist.get(0);
 String starttime = carbean.getStarttime();
 String endtime = carbean.getEndtime();

 String str[] = carbean.getStarttime().trim().split("-");
 String str1[] = carbean.getEndtime().trim().split("-");
 request.setAttribute("syear", str[0]);
 request.setAttribute("smonth", str[1]);
 request.setAttribute("sday", str[2]);
 request.setAttribute("eyear", str1[0]);
 request.setAttribute("emonth", str1[1]);
 request.setAttribute("eday", str1[2]);
 request.setAttribute("carbean", carbean);
 request.setAttribute("carid", carid);
 SimpleDateFormat ft = new SimpleDateFormat("yyyy-mm-dd");
 try {
     long days = (ft.parse(endtime).getTime() - ft.parse(starttime)
      .getTime()) / (1000 * 60 * 60 * 24);
     request.setAttribute("days", days);
 } catch (ParseException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
 }
 return "save.jsp";

    }
--------------------------------工具类举例开始-----------------------------------
// 页面,上一页下一页方法
    public Page getPage(HttpServletRequest request, int dataNum) {
 int perNum;
 int currentPage = 1;// 默认第一页
 request.setAttribute("currentPage", currentPage);// 查询显示第一页
 String getPerNum = request.getParameter("perNum");
 if (getPerNum == null || getPerNum.equals("")) {
     perNum = 10;

 } else {
     perNum = Integer.parseInt(getPerNum);

 }
 request.setAttribute("perNum", perNum);// 默认每页十条数据

 System.out.println("currentpage" + currentPage);
 Page page = new Page();
 // 页数

 int pages = (dataNum % perNum) == 0 ? (dataNum / perNum)
  : ((dataNum / perNum) + 1);
 System.out.println("pages" + pages);
 // 下一页
 if (request.getParameter("next") != null) {
     currentPage = Integer.parseInt(request.getParameter("next")) + 1;
 }
 // 上一页
 if (request.getParameter("last") != null) {
     currentPage = Integer.parseInt(request.getParameter("last")) - 1;
 }
 
 if (request.getParameter("current") != null) {
     currentPage = Integer.parseInt(request.getParameter("current"));
 }
        if(request.getParameter("endPage")!=null)
        {
            currentPage =pages;
        }
 if (currentPage <= 1) {
     currentPage = 1;
 }
 if (currentPage >= pages) {
     currentPage = pages;
 }
 page.setPerNum(perNum);
 page.setCurrentPage(currentPage);
 request.setAttribute("dataNum", dataNum);// 总条数
 request.setAttribute("pages", pages);// 总页数
 request.setAttribute("currentPage", currentPage);
 request.setAttribute("perNum", perNum);
 return page;
    }
   
-------------------------工具类举例结束-------------------------------
---------------DAO-------------------------
@Component                      //Component注解,将类注解到applicationContext上,相当于bean=“”class=“”,注解相对较简单。
public class Cardao {
 @Autowired
    private JdbcTemplate jdbcTemplate;
    public JdbcTemplate getJdbcTemplate() {
 return jdbcTemplate;
    }

    public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
 this.jdbcTemplate = jdbcTemplate;
    }

--------add、update、delete------------
  public int add(Carbean carbean) {

     String sql = "INSERT INTO CARMANAGEMENT (CARDEPT,CARNUM,STARTTIME,ENDTIME,PATH) VALUES (?,?,?,?,?);";
  System.out.println(sql);
  return jdbcTemplate.update(
   sql,
   new Object[] { carbean.getCardept(), carbean.getCarnum(),
    carbean.getStarttime(), carbean.getEndtime(),
    carbean.getPath() });
 
    }
    public int update(Carbean carbean){
     String sql = "UPDATE  CARMANAGEMENT  SET CARDEPT=?,CARNUM=?,STARTTIME=?,ENDTIME=?,PATH=? WHERE CARID=?; ";
     System.out.println(sql);
   return  jdbcTemplate.update(
   sql,
   new Object[] { carbean.getCardept(), carbean.getCarnum(),
    carbean.getStarttime(), carbean.getEndtime(),
    carbean.getPath(), carbean.getCarid() });
 }
  public int delete(String carid) {
 // TODO Auto-generated method stub
 String sql = "DELETE FROM CARMANAGEMENT WHERE CARID=?;";
 System.out.println(sql);
 return jdbcTemplate.update(sql,
  new Object[] { Integer.parseInt(carid) });
    }
-----------查询一个和按id查询和按类别查询----------------------------
//总页数------------------查询一个数字,queryForInt
   public int pages(){ 
       String sql = "SELECT  COUNT(*)  FROM CARMANAGEMENT;";
       int dataNum= jdbcTemplate.queryForInt(sql);
      System.out.println(sql+dataNum);
       return dataNum;
   }
   //分页操作,sql语句的拼接
   public List<Carbean> pages(Page page,String sql)
   {
       int perNum=page.getPerNum();//每页显示条数
       int current=page.getCurrentPage();//当前页
       System.out.println("当前页"+current+"dao"+perNum+"pernum");

     sql=sql+" LIMIT "+((current-1)*perNum)+" , "+perNum;
     System.out.println("CarDao-query"+sql);
     return (List<Carbean>) jdbcTemplate.query(sql, new CarRowMapper());
   }
   //按条件查询和查询所有,按条件查询,没有条件就查询所有,有条件就在后面加条件,通过sql语句的凭借,然后再结合分页操作的工具类实现条件查询的分页显示。

    public List<Carbean> query(Carbean carbean,Page page) {
 
 String sql = "SELECT * FROM CARMANAGEMENT WHERE 1=1 ";
 String cardept = carbean.getCardept();
 String carnum = carbean.getCarnum();
 String starttime = carbean.getStarttime();
 String endtime = carbean.getEndtime();
 String path = carbean.getPath();
 if ((cardept == null||"".equals(cardept)) && (carnum == null||"".equals(carnum)) && (starttime == null||"".equals(starttime))
  && (endtime == null || "".equals(endtime))&& (path == null||"".equals(path))) {
     return (List<Carbean>)pages(page,sql);
 } else {
     if (StringUtils.isNotEmpty(cardept)) {
  sql = sql + "  AND CARDEPT LIKE " + "'%" + cardept + "%'";
  System.out.println(sql);
     }
     if (StringUtils.isNotEmpty(carnum)) {
  sql = sql + " AND CARNUM LIKE " + "'%" + carnum + "%'";
  System.out.println(sql);
     }
     if (StringUtils.isNotEmpty(starttime)) {
  sql = sql + " AND  STARTTIME = " +"'"+ starttime+"'";
  System.out.println(sql);
     }
     if (StringUtils.isNotEmpty(endtime)) {
  sql = sql + " AND ENDTIME = "  +"'"+endtime+"'";
  System.out.println(sql);
     }
     if (StringUtils.isNotEmpty(path)) {
  sql = sql + "  AND PATH LIKE " + "'%" + path + "%'";
  System.out.println(sql);
     }
     // TODO Auto-generated method stub

     return (List<Carbean>)pages(page,sql);
 }
    }
//这部分逻辑有欠缺,在显示条件之后查询的是符合条件的数据,但是按下一页之后就会还是显示所有,需要在前面加个setAttribute(“条件名”,查询条件)
//request.setAttribute("carBeanSec", carbean);补充如下
 // 查询
    @RequestMapping("query")
    public String query(HttpServletRequest request,PageUtils pageUtils) {
 
 int dataNum =carservice.pages();
 Carbean carbean = pageUtils.getQueryCarbean(request);
 Page page=pageUtils.getPage(request,dataNum);
 // 传参
 List<Carbean> carlist = carservice.query(carbean, page);
 // carlist组合查询时用于显示
 request.setAttribute("carBeanSec", carbean);
 request.setAttribute("listall", carlist);// 参数注入
 return "query.jsp";

    }

---页面-----
<table width="100%" height="100%" cellpadding="1" border=1
   cellspacing="1">
   <tr>
    <th width="130px">车辆单位:</th>
    <td><input type="text" id="cardept" name="cardept" value="${carBeanSec.cardept }"></input></td>
    <th width="130px">车牌号:</th>
    <td><input type="text" id="carnum" name="carnum" value="${carBeanSec.carnum }"></input></td>
   </tr>
   <tr>
    <th>起始时间:</th>
    <td><input type="text" id="starttime" name="starttime" value="${carBeanSec.starttime }"></input></td>
    <th>结束时间:</th>
    <td><input type="text" id="endtime" name="endtime" value="${carBeanSec.endtime }"></input></td>
   </tr>
   <tr>
    <th>通行路线:</th>
    <td><input type="text" id="path" name="path" value="${carBeanSec.path }"></input></td>
   </tr>
  </table>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值