项目知识点总结

①对于有表关联关系的数据插入,该怎么处理?

写两条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');
	}
}

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


前端页面显示:


后台代码显示:


注意:所需要的数据格式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值