您的位置:首页 > 其它

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

2016-06-23 15:36 309 查看
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"  onclick="addcar()">增加</a>

                <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-edit"  plain="true"  onclick="updatecar()">修改</a>

                <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-remove"  plain="true"  onclick="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

4000

     *

     */

   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" onclick="carupdate()" id="carupdate">确认修改</a>

        <a href="javascript:void(0)" class="easyui-linkbutton c6" iconCls="icon-ok"

onclick="caradd()" style="width:90px" id="caradd" >确认添加</a>

        <a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-cancel"

onclick="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 cs
be80
id) {

        // 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、请求测试修改功能是否完成
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息