1. 程式人生 > >summer框架做增刪改查-總結

summer框架做增刪改查-總結

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時,要淡定地修改自己之前改動的地方