您的位置:首页 > 其它

项目知识点总结

2017-03-17 16:50 155 查看
①对于有表关联关系的数据插入,该怎么处理?

写两条insert语句,然后把主键表的id取出来插入到外键表的pid中,此时需要在mapper.xml的文件中加入useGeneratedKeys="true"
keyProperty="id"表示可以取出正在插入的某一条数据的id,但需要把这两个方法放在同一个事务里,因为插入数据必须同时成功或者同时失败。

②对于有表关联(一对多)关系数据的修改,该怎么处理?

如果仅仅是只有两个表之间的主外键关系(不涉及三表或者更多),一般采取的策略有两种,第一种是先把数据删除,然后再插入数据,但要保证这条数据的主键ID不能发生改变(点击删除的时候可以带过去);第二种是直接进行修改,update等等------同样的放到同一个事务里。

如果有多表之间的关联关系,即A-->B,A-->C,A-->D,此时的修改数据,很显然我们是不能删除A表的数据的,那么我们的做法是,直接用update修改A表的数据,然后再删除B表或者C,D表的数据,然后再插入数据,因为一对多的关系是不能直接update多条数据,同理pid必须保持不变---
同样的放在同一个事务里。

③为什么当页面元素disabled=true时,它的值在后台得不到?

disabled=true 是把这个元素禁用了,也就是值不能从后台取到。如果你不想让别人操作这个元素,又想取到值,可以让他readonly=true,这样就是只读的了.后台也可以取到值.

④用easyUI的后台框架,怎么在页面显示多条数据?

比如:编辑的时候需要回显多条数据?



首先我们要查出来含有这个字段的数据(多条),然后转变成json字符串,如下所示

int pid = Integer.parseInt(request.getParameter("id"));
List<String> lists =robotReplyService.getReplyList(pid);
JSONObject json = new JSONObject();
json.put("lists", lists);
response.setCharacterEncoding("utf-8");
PrintWriter pw = response.getWriter();
pw.write(json.toString());

在前台页面js中,解析方式如下:

success : function(r) {
alert(r);//[object Object]
var dicItem = r.lists;	//[object Object],[object Object]
var jsonCond = JSON.stringify(dicItem);//stringify()用于从一个对象解析出字符串
//[{"id":0,"pid":0,"replyText":"99999"},{"id":0,"pid":0,"replyText":"88888"}]
var jsonObj = $.parseJSON(jsonCond);//[object Object]
/** 表格加载数据 */
$("#item").datagrid({
data:jsonObj
});
}

在页面中:我们必须把field属性和从json中传过来的数据属性名称对应一致,要不然显示不出来对应的数据



⑤怎么才能写出下图的新增,删除?



首先一个datagrid



Js代码:
新增:
function appendItem(tableId) {
if (endEditing()) {
$(tableId).datagrid('appendRow', {
replyText : ''
});
editIndex = $(tableId).datagrid('getRows').length - 1;
$(tableId).datagrid('selectRow', editIndex).datagrid('beginEdit',editIndex);
}
}
/** editIndex */
var editIndex = undefined;
function endEditing() {
if (editIndex == undefined) {
return true;
}
if ($('#item').datagrid('validateRow', editIndex)) {
$('#item').datagrid('endEdit', editIndex);
editIndex = undefined;
return true;
} else {
return false;
}
}
删除:
function removeItem(tableId) {
if (editIndex == undefined) {
return;
}
$(tableId).datagrid('cancelEdit', editIndex).datagrid('deleteRow',editIndex);
editIndex = undefined;
}
function onClickRow(index, row) {
if (editIndex != index) {
if (endEditing()) {
editIndex = index;
} else {
$('#item').datagrid('selectRow', editIndex);
}
}
}
function onDblClickRow(index, field, value) {
$('#item').datagrid('selectRow', index).datagrid('beginEdit', index);
var ed = $("#item").datagrid('getEditor', {
index : index,
field : "replyText"
});
$(ed.target).focus();
}
//处于编辑中的状态也保存
function accept(tableId) {
if (endEditing()) {
$(tableId).datagrid('acceptChanges');
}
}

⑥当我们点复制在点击选择目标机器人的时候,怎么出现如下的表格?



前端页面显示:



后台代码显示:



注意:所需要的数据格式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: