Jimoshi_三大框架完成DLS-物流管理系统的车辆管理系统增删改

本文介绍了如何利用Jimoshi框架完成物流管理系统的车辆管理系统中的数据展示、删除、添加和修改功能。详细步骤包括编写前端页面、Struts.xml配置、业务逻辑实现以及数据库操作。通过示例代码展示了各部分的实现细节,如Car.jsp页面的编写、CarAction类的处理方法、CarDao接口及其实现等。
摘要由CSDN通过智能技术生成
Jimoshi成长经历:前面的笔记后面再慢慢整理-------方便自己

目录:展示车辆管理系统的数据、删除车辆管理系统的数据、添加车辆管理系统的数据、修改车辆管理系统的数据

三大框架完成DLS-物流管理系统的车辆管理系统增删改

一、展示车辆管理系统的数据

  1、编写car.jsp页面

  代码示例:

   <%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!--引入easyui的样式 -->
<link rel="stylesheet"  type="text/css" href="${pageContext.request.contextPath}/themes/bootstrap/easyui.css">
<link rel="stylesheet"  type="text/css" href="${pageContext.request.contextPath}/themes/icon.css">
<!-- js文件 -->
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery.easyui.min.js"></script>
<script type="text/javascript" src="${pageContext.request.contextPath}/js/easyui-lang-zh_CN.js"></script>
</head>
<script type="text/javascript">
(function(){
    //更改底部工具栏 getPager返回页面对象
    var pager = $('#toolbar').datagrid('getPager');    
      pager.pagination({
        pageList: [10,20,30],
    });
})    
</script>
<body>
 <table id="CarList"  class="easyui-datagrid"
            toolbar="#toolbar" pagination="true" fit="true"
            url="${pageContext.request.contextPath}/car/car_showCarMsg.action" striped="true"
            rownumbers="true" fitColumns="true" border="false">
        <thead>
            <tr>
                <th field="ck" checkbox=true></th>
                <th field="cid"  hidden="true" >车辆ID</th>
                <th field="cname" width='50' resizable='false' >车辆名字</th>
                <th field="cvolume" width='50' resizable='false'>车辆容量</th>
                <th field="csname" width='50' resizable='false'>车辆状态</th>
            </tr>
        </thead>
        <div id="toolbar">
                <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-add"  plain="true"  οnclick="addcar()">增加</a>
                <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-edit"  plain="true"  οnclick="updatecar()">修改</a>
                <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-remove"  plain="true"  οnclick="deletecar()">删除</a>
            </div>
</body>
</html>

  2、编写struts.xml文件

   代码示例:

   <include file="zhj.xml"></include>

  3、添加zhj.xml,编写请求

  代码示例:

  <?xml version="1.0" encoding="UTF-8"?>
  <!DOCTYPE struts PUBLIC
    "-//ApacheSoftware Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
  <struts>
       <package name="cars" namespace="/car" extends="struts-default">
        <action name="car_*" method="{1}" class="com.zr.action.CarAction">
        </action>
    </package>
  </struts>

  3、创建CarAction类编写showCarMsg方法

  代码示例:

  public void showCarMsg(){
   System.out.println(111);
  }

  4、编写CarDao接口

  代码示例:

  /**
    * 车辆的dao层
    * @author Administrator
    *
    * @param <T>
    */
   public interface CarDao<T> extends BaseDao<T> {
   /**
    * 查询车辆信息的数量
    * @return
    */
   public long showCarCount();
   /**
    * 根据页码返回车辆的信息
    * @param page
    * @param rows
    * @return
    */
   public List<TCar> showCarMsg(int page,int rows);
   }

  5、编写CarDaoImpl类

  代码示例:

  /**
    * 重写车辆的dao层编写具体实现
    * @author Administrator
    *
    */
  @Repository("carDao")
  public class CarDaoImpl<T> extends BaseDaOImpl<T> implements CarDao<T>{

    @Override
    public long showCarCount() {
        // TODO Auto-generated method stub
        //查询车辆总数的hql语句
        String hql = "select count(*) from TCar";
        //将查出来的数据放在list中
        List<Object> obj = this.getCurrentSession().createQuery(hql).list();
        //获取数据
        return (long) obj.get(0);
    }

    @Override
    public List<TCar> showCarMsg(int page, int rows) {
        // TODO Auto-generated method stub
         //查询车辆信息的sql语句
         String sql = "select cid,cname,cvolume,csname from t_car,t_carstate where t_car.csid=t_carstate.csid limit :start,:scount";
         //将查出来的数据转成map
         Query query=this.getCurrentSession().createSQLQuery(sql.toString()).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);
         //指定当前分页查询的起始位置和行数
         query.setInteger("start",(page-1)*rows);
         query.setInteger("scount",rows);
         System.out.println(query);
         //将Query对象query转换成集合,并且把该集合赋值给一个新的集合
          List<TCar> cars = query.list();
          return cars;
    }

   }

   6、编写CarService接口

   代码示例:

   /**
     * 车辆的service层
     * @author Administrator
     *
     */
   public interface CarService {
   /**
     * 查找车辆的信息
     * @param page
     * @param rows
     * @return
     */
   public JSONObject showCarMsg(int page,int rows);
   }

   7、编写CarServiceImpl类

   代码示例:

   /**
     * 重写车辆的service层编写具体实现
     * @author Administrator
     *
     */
  //把这个类当做一个service层
  @Service("carService")
  public class CarServiceImpl implements CarService {
    //按照配置(依据名称或者依据类型)给属性注入实例
    @Resource
    private  CarDao<TCar>  carDao;
    @Override
    public JSONObject showCarMsg(int page, int rows) {
        // TODO Auto-generated method stub
        //Map<String,Object> obj = new HashMap<String,Object>();
        JSONObject obj = new JSONObject();
        obj.put("total", carDao.showCarCount());
        obj.put("rows", carDao.showCarMsg(page, rows));
        //JSONObject jso = JSONObject.fromObject(obj);
        return obj;
    }
   }

   8、编写CarAction类

   代码示例:

   /**
    * 车辆的控制层
    * @author Administrator
    *
    */
   @Controller
   // 保证当有请求的时候,都创建一个Action对象
   @Scope(value="prototype")
   public class CarAction extends ActionSupport implements ServletResponseAware{
    private HttpServletResponse response;
    private int page;
    private int rows;
    public int getPage() {     return page;  }
    public void setPage(int page) {     this.page = page; }
    public int getRows() {    return rows; }
    public void setRows(int rows) {  this.rows = rows; }
    @Resource
    private  CarService  carService;
    public void showCarMsg(){
        JSONObject obj = carService.showCarMsg(page, rows);
        response.setCharacterEncoding("utf-8");
        try {
            response.getWriter().write(obj.toString());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    @Override
    public void setServletResponse(HttpServletResponse response) {
        // TODO Auto-generated method stub
        this.response=response;
    }
    }

   9、测试,请求:http://localhost:8080/LDS/main.jsp


二、删除车辆管理系统的数据

  1、编写car.jsp页面

  代码示例:

  //删除用户信息
  function deletecar(){
    //获取被选中需要删除的数据
     var data = $("#CarList").datagrid('getSelections');
     if(data.length==0){
         $.messager.show({
                title:'警告',
                msg:'请选中需要删除的数据',
                timeout:1000,
                showType:'slide',
                style:{
                        top:'100',                        
                    }
            });
     }else{
          //声明一个空的数组 装选中的uid
          var cids = [];
          for (var i = 0; i < data.length; i++) {
            cids.push(data[i].cid);
        }
    $.messager.confirm('确认对话框', '您确认删除选中的'+data.length+'条数据吗?', function(r){
                if (r){
                    //通过ajax请求将对应数据发送到后台中
                    $.ajax({
                        type:"post",
                        url:'${pageContext.request.contextPath}/car/car_deleteCarMsg.action',
                        data:{"cids":cids},
                        dataType:"text",
                        success:function(data){
                                //提示删除成功
                                $.messager.alert('提示','删除成功','info',function(){
                                $("#CarList").datagrid('reload');
                                $("#CarList").datagrid('uncheckAll');
                    });
                }
                });
             }
       });
    }
   }

   2、编写CarAction测试请求是否成功

   代码示例:

   //删除车辆信息
    public void deleteCarMsg(){
           System.out.println(111);
   }

   3、编写CarDao接口方法

   代码示例:

   /**
     * 删除车辆信息
     * @param cid 传入车辆id
     */
    public void deleteCarMsg(int cid);

   4、编写CarDaoImpl类重写CarDao接口方法

   代码示例:

   @Override
    public void deleteCarMsg(int cid) {
        // TODO Auto-generated method stub
        TCar car = (TCar) this.getCurrentSession().get(TCar.class, Integer.valueOf(cid));
        this.getCurrentSession().delete(car);
    }

   5、编写CarService接口的方法

   代码示例:

   /**
     * 批量删除车辆的信息
     * @param cids 传入选中的车辆id
     */
   public void deleteCarMsg(String cids[]);

   6、编写CarDaoServiceImpl类重写CarService接口方法

   代码示例:

   @Override
    public void deleteCarMsg(String[] cids) {
        // TODO Auto-generated method stub
        for (int i = 0; i < cids.length; i++) {
            carDao.deleteCarMsg(Integer.valueOf(cids[i]));
        }
    }

   7、编写CarAction类

   代码示例:

   private HttpServletRequest request;
   private int cids[];
   public int[] getCids() {return cids;}
   public void setCids(int[] cids) {this.cids = cids;}
   //删除车辆信息
   public void deleteCarMsg(){
        String cids[]=request.getParameterValues("cids[]");
        carService.deleteCarMsg(cids);
        PrintWriter pw;
        try {
            pw = response.getWriter();
            pw.write("");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }        
    }
   @Override
    public void setServletRequest(HttpServletRequest request) {
        // TODO Auto-generated method stub
        this.request=request;
    }

   8、请求测试功能是否完成

三、添加车辆管理系统的数据

   1、编写car.jsp页面

   代码示例:
 
   <script type="text/javascript">
   //显示添加车辆信息框
   function addcar(){
    $("#dlg").dialog("open").dialog('setTitle', '添加车辆');
        $('#carupdate').hide();
        $('#caradd').show();
        $('#ccid').hide();
   }
   //确认添加车辆信息
   function caradd(){
   //获得新增窗口内输入的文本框的值
    var car = new Object();
    car.cname = $("#cname").val();
    car.cvolume = $("#cvolume").val();
    car.csid = $("#cs").combobox('getValue');
    var json = JSON.stringify(car);
   //通过ajax请求将对应数据发送到后台中
   $.ajax({
    type:"post",
    url:"${pageContext.request.contextPath}/car/car_addCarMsg.action",
    data:{"json":json},
    dataType:"text",
    success:function(data){
            $.messager.alert('提示','添加成功','info',function(){
                //刷新页面,关闭窗口,清除表单内容
                $("#CarList").datagrid('reload');
                $('#dlg').dialog('close');
                $('#dlg').form('clear');    
            });
        }
    })
   };
  </script>
  <div id="dlg" class="easyui-dialog"
style="width:400px;height:280px;padding:10px 20px"
            closed="true" buttons="#dlg-buttons">
        <div class="ftitle" id="">车辆信息</div>
        <form id="fm" method="post" novalidate>
        <div class="fitem" id="carid">
          <div class="fitem" id="ccid">
                <label>车辆ID:</label>
                <input id="cid" name="cid" class="easyui-textbox" required="true">
            </div>
            <div class="fitem">
                <label>车辆名字:</label>
                <input id="cname" name="cname" class="easyui-textbox" required="true" >
            </div>
            <div class="fitem">
                <label>车辆容量:</label>
                <input id="cvolume" name="cvolume" class="easyui-textbox" required="true">
            </div>
             <div class="fitem">
                <label>车辆状态:</label>
                <input id="cs" class="easyui-combobox" name="cs"
                data-options="editable:false,valueField:'id',textField:'text',url:'${pageContext.request.contextPath}/car/car_findCarCsnameMsg.action'" />        
            </div>
           </div>
        </form>
    </div>
    <div id="dlg-buttons">
        <a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok"
style="width:90px" οnclick="carupdate()" id="carupdate">确认修改</a>
        <a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok"
οnclick="caradd()" style="width:90px" id="caradd" >确认添加</a>
        <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel"
οnclick="javascript:$('#dlg').dialog('close')" id="et" style="width:90px">取消</a>
    </div>
   
   2、编写CarAction测试请求是否成功

   代码示例:
   //展示车辆状态信息(动态加载车辆状态)
   public void findCarCsnameMsg(){
      System.out.println(1111);
   }
   //添加车辆信息
   public void addCarMsg(){
      System.out.println(1111);
   }

   3、编写CarDao接口

   代码示例:

   /**
     * 查询车辆 状态信息(动态加载状态)
     * @return
     */
   public JSONArray findCarCsnameMsg();
   /**
     * 添加车辆信息
     * @param cname 传入车辆名字
     * @param cvolume 传入车辆容量
     * @param csid 传入车辆状态
     * @return
     */
   public boolean addCarMsg(String cname,String cvolume,TCarstate TCarstate);
   /**
     * 查询状态id
     * @return
     */
   public TCarstate findTCarstateCsid(int csid);

   4、编写CarDaoImpl类重写CarDao的方法

   代码示例:

   @Override
    public JSONArray findCarCsnameMsg() {
        // TODO Auto-generated method stub
        //声明一个map数据集合
        Map<String, String> map = new HashMap<String,String>();
        //声明一个jso数组
        JSONArray jso=new JSONArray();
        //查询车辆状态信息的hql语句
        String hql="from TCarstate";
        //查询hql语句
        Query query=this.getCurrentSession().createQuery(hql);
        //将查询出来的hql数据放入list中
        List<TCarstate> tcarstate=query.list();
        for (TCarstate tc : tcarstate) {
            //获得状态的id和名字
            String CSid=String.valueOf(tc.getCsid());
            String CSname=tc.getCsname();
            //将状态id和名字放入mao集合中
            map.put("id", CSid);
            map.put("text", CSname);
            //将这个集合放入jso数组中
            jso.add(map);
        }
        //返回jso数组
        return jso;
    }
    @Override
    public boolean addCarMsg(String cname, String cvolume,TCarstate TCarstate) {
        // TODO Auto-generated method stub
        boolean flag =false;
        TCar car = new TCar();
        car.setCname(cname);
        car.setCvolume(cvolume);
        car.setTCarstate(TCarstate);;
        this.getCurrentSession().save(car);
        return flag;
    }
    @Override
    public TCarstate findTCarstateCsid(int csid) {
        // TODO Auto-generated method stub
        TCarstate TCarstate = (TCarstate) this.getCurrentSession().get(TCarstate.class, Integer.valueOf(csid));
        return TCarstate;
    }

    5、编写CarService接口

    代码示例:

    /**
      * 查询车辆状态的信息
      * @return
      */
    public JSONArray findCarCsnameMsg();
   /**
     * 添加车辆的信息
     * @param cname
     * @param cvolume
     * @param csid
     * @return
     */
   public boolean addCarMsg(String cname,String cvolume,int csid);

   6、编写CarServiceImpl类

   代码示例:

   @Override
    public JSONArray findCarCsnameMsg() {
        // TODO Auto-generated method stub
        return carDao.findCarCsnameMsg();
    }
   @Override
   public boolean addCarMsg(String cname, String cvolume, int csid) {
        // TODO Auto-generated method stub
        return carDao.addCarMsg(cname, cvolume,carDao.findTCarstateCsid(csid));
    }

   7、编写CarAction类

   代码示例:

       //展示车辆状态信息
    public void findCarCsnameMsg(){
        JSONArray obj = carService.findCarCsnameMsg();
        response.setCharacterEncoding("utf-8");
        try {
            response.getWriter().write(obj.toString());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    //添加车辆信息
    public void addCarMsg(){
        JSONObject jso = JSONObject.fromObject(json);
        int csid=jso.getInt("csid");
        String cname=jso.getString("cname");
        String cvolume=jso.getString("cvolume");
        Boolean flag=carService.addCarMsg(cname, cvolume, csid);
        response.setCharacterEncoding("utf8");
        PrintWriter pw;
        try {
            pw = response.getWriter();
            pw.write(flag+"");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
   
   8、测试添加是否成功

四、修改车辆管理系统的数据

   1、编写car.jsp页面

   代码示例:

   //修改用户信息
   function updatecar(){
     var data = $("#CarList").datagrid('getSelections');    
        if(data.length==0){
            $.messager.show({
                title:'警告',
                msg:'请选中需要修改的数据',
                timeout:1500,
                showType:'slide',
                    style:{
                        left:100,
                        right:'',
                        top:100
                    }
                  });
        }else if(data.length!=1){
            $.messager.show({
                title:'警告',
                msg:'你只能选择一条数据修改',
                timeout:1500,
                showType:'slide',
                    style:{
                        left:100,
                        right:'',
                        top:100
                    }
                  });
        }else{
            var car =$("#CarList").datagrid('getSelected');
            $("#cid").textbox('setValue',car.cid)
            $("#cname").textbox('setValue',car.cname)
            $("#cvolume").textbox('setValue',car.cvolume);
            $("#cs").textbox('setValue',car.csname);
            $('#dlg').dialog('open').dialog('center').dialog('setTitle','修改信息');
               //隐藏保存按钮
                $('#caradd').hide();
               //隐藏id框
                $('#ccid').hide();
                //显示确认按钮
                $('#carupdate').show();
        }
        
    }    
    //确认修改用户信息
    function carupdate(){
     var car = new Object();
     car.cid = $("#cid").val();
     car.cname = $("#cname").val();
     car.cvolume = $("#cvolume").val();
     car.csid = $("#cs").combobox('getValue');
     var json1 = JSON.stringify(car);
        $.ajax({                       
                type:"post",                                                           url:"${pageContext.request.contextPath}/car/car_updateCarMsg.action",
                data:{"json1":json1},
                dataType:"text",
                success:function(data){
                    $.messager.alert('提示','修改成功', data)
                  //刷新页面,关闭窗口,清除表单内容
                    $("#CarList").datagrid('reload');
                    $('#dlg').dialog('close');
                    $('#dlg').form('clear');    
                }
        })
    }
   
    2、编写CarAction测试请求是否成功

    代码示例:

    //修改车辆信息
    public void updateCarMsg(){
            System.out.println(111);
    }

    3、编写CarDao接口添加修改的方法
 
    代码示例:

    /**
      * 修改车辆信息
      * @param cid 传入车辆id
      * @param cname 传入车辆名字
      * @param cvolume 传入车辆容量
      * @param csid 传入车辆状态
      * @return
      */
    public void updateCarMsg(int cid,String cname,String cvolume,TCarstate TCarstate);

    4、编写CarDaoImpl类重写CarDao接口修改信息的方法

    代码示例:

    @Override
    public void updateCarMsg(int cid, String cname, String cvolume, TCarstate TCarstate) {
        // TODO Auto-generated method stub
        TCar car = (TCar) this.getCurrentSession().get(TCar.class, Integer.valueOf(cid));
        car.setCname(cname);
        car.setCvolume(cvolume);
        car.setTCarstate(TCarstate);
        this.getCurrentSession().update(car);
    }

    5、编写CarService接口添加修改信息的方法

    代码示例:

    /**
     * 修改车辆信息
     * @param cid 传入车辆id
     * @param cname 传入车辆名字
     * @param cvolume 传入车辆容量
     * @param csid 传入状态id
     */
    public void updateCarMsg(int cid,String cname,String cvolume,int csid);

    6、编写CarServiceImpl类重写CarService接口的修改方法  

    代码示例:

    @Override
    public void updateCarMsg(int cid, String cname, String cvolume, int csid) {
        // TODO Auto-generated method stub
        carDao.updateCarMsg(cid, cname, cvolume, carDao.findTCarstateCsid(csid));
    }

   7、编写CarAcrion类完成修改车辆信息的具体实现方法

   代码示例:

   private String json1;
   public String getJson1() { return json1; }
   public void setJson1(String json1) { this.json1 = json1; }
   //修改车辆信息
    public void updateCarMsg(){
        JSONObject jso = JSONObject.fromObject(json1);
        int csid=jso.getInt("csid");
        int cid = jso.getInt("cid");
        String cname=jso.getString("cname");
        String cvolume=jso.getString("cvolume");
        carService.updateCarMsg(cid, cname, cvolume, csid);
        response.setCharacterEncoding("utf8");
        PrintWriter pw;
        try {
            pw = response.getWriter();
            pw.write("");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

   8、请求测试修改功能是否完成
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值