summer框架做增删改查-总结

时间:2022-02-03 21:39:14

1、datatable的显示

 function initTable(){
$('#wzcbkList').dataTable().fnDestroy();
$('#wzcbkList').dataTable({
"ordering": false,//排序
"searching": false,//表格自带搜索栏
"serverSide": true,//异步请求必须设置
'bPaginate': true, //是否分页
"sPaginationType": "full_numbers", //分页样式
//"bLengthChange": false, //是否启用设置每页显示记录数
//"iDisplayLength": 20, //默认每页显示的记录数
"aLengthMenu": [10, 25, 50, 100],
"bProcessing": true,//是否显示正在处理的提示 如:设置异步请求时,是否有等待框
//"sAjaxSource": basePath+'/wz/wzcbk!wzcbkList.action', //服务器会默认使用cookie;使用该参数后,请求的每个连接都是新连接
"bStateSave": false, //保存状态到cookie ******很重要 , 当搜索的时候页面一刷新会导致搜索的消失。使用这个属性设置为true就可避免了

"ajax": {
url: basePath+'/wz/wzcbk!wzcbkList.action',
type:"post",
data: {
"cbkmc": $('#cbkmc').combobox('getValue'),
"cbkfzr": $('#cbkfzr').val()
}
},
"columnDefs":[
{"targets": [0],"visible": true,"render": function (data, type,row) {
return "<input type=\"checkbox\" value=\""+data+"\">";
}
},
{"targets": [7],"visible": true,"render": function (data, type,row) {
return formatDate(new Date(data),"yyyy-MM-dd");
}
}
],
"columns": [
{ "data":"cbkid"},
{ "data": "cbkmc" },
{ "data": "cbkkc" },
{ "data": "cbkfzr" },
{ "data": "lxdh" },
{ "data": "lxdz" },
{ "data": "email" },
{ "data": "addtime" }
],
"createdRow": function( row, data, dataIndex ) {
$('td input[type="checkbox"]', row).iCheck({
checkboxClass: 'icheckbox_minimal-grey',
radioClass: 'iradio_minimal-grey',
increaseArea: '0%' // optional
});
}
});

难点:1)、数据分页,后台传的json格式不对,需要注意:

        dataMap.put("draw", draw);//分辨哪个页面请求
        dataMap.put("recordsTotal", total);//(过滤的条数)
        dataMap.put("recordsFiltered", total); //分页传的参数,总条数,会自动根据当前页分从几到几
        dataMap.put("data", wzcbks);
            2)、查询下拉框的取不l值:

     //有初始化的数据最好放在上面,防止数据未加载完 
    $('#cbkmc').combobox({
            url : basePath+'/wz/wzcbk!queryWzcbk.action',
            valueField : 'cbkid',
            textField : 'cbkmc'
     });
$('#cbkmc').combobox('getValue')

2、查看数据

        var ids = getSelected($(tableId));

     1) 前台 获取不了ids,主要是因为checkbox内未赋value值,data为空

      "columnDefs":[
             {"targets": [0],"visible": true,"render": function (data, type,row) {
                 return "<input type=\"checkbox\" value=\""+data+"\">";       
                 }          
             },
             {"targets": [7],"visible": true,"render": function (data, type,row) {
                 return formatDate(new Date(data),"yyyy-MM-dd");
                 }          
             }
          ]    

      2) view页面显示不了数据,注意后台传的json格式,{"result":"success","data":{"cbkid":"969","cbkkc":"222"}

        // 这里面的接收的id是indexBacend页面拼的id
        String id = getRequest().getParameter("id");
        wzcbk = wzcbkService.selectByPrimaryKey(id);
        ObjectMapper mapper = new ObjectMapper();
        Map<String, Object> dataMap = new HashMap<String, Object>();
        dataMap.put("data", wzcbk);
        dataMap.put("result","success");
        String json = mapper.writeValueAsString(dataMap);
        log.info("查询的物资储备库列表数据:"+json);
        responseText(json);

3、删除数据

      纠结在于T_DEMO_WZCBK_SqlMap.xml内的sql语句,更改deltye来确定数据库端的假删除

 <update id="updateByPrimaryKeyWithBLOBs" parameterClass="com.itic.appbase.demo.persistence.model.WzCbk" >
    update T_DEMO_WZCBK
    set
      CBKMC = #cbkmc#,
      CBKFZR = #cbkfzr#,
      LXDH = #lxdh#,
      LXDZ = #lxdz#,
      EMAIL = #email#,
      ADDTIME = #addtime#,
      DELTYPE = #deltype#
    where  CBKID = #cbkid#
  </update>

  4、   修改数据

     首先跟查看一样获取某个id的一条数据并显示在前端,在更改数据

  5、总结

     1)、数据库的表设计不合理:

          字段通常设置为NVARCHAR2(20);

          取值范围根据实际情况来定;

          id记得设置成为navchar(20);

          date可以设置成Date也可以设置成为navchar(20);

          具备AddTime字段;

          具备备注和多余字段

     2)、重新建表,根据gen-mybatis生成dao和service时,要淡定地修改自己之前改动的地方