商城之点滴错误总结

前端之家收集整理的这篇文章主要介绍了商城之点滴错误总结前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

写来惭愧,做商城的时候遇到了不少的错但是笔记记下来的很少,仅有的 最后留心记下来的 也在我刚才多次地复制粘贴的过程中烟消云散了,但是还是感觉应该记录一下,要不凭我这转眼即逝的记性(⊙﹏⊙)b

商城用的是SSH框架,这个之前也有一些介绍


关于外键:

cannot delete or update a parent row :a foregin key constraint fails('shop'……

删除商品product的时候由于订单项orderitems这个表将pid(porduct的主键)设置成了外键,删的时候没有步调一致,orderitems就闹了点脾气;这个错让me纠结了半天,有一个解决方案说:set foreign_key_checks=0,我再Dao层设置了一下,报红线、好吧,暴露智商了,后来查到了一些比较专业对口的点击打开链接

先说下什么是外键:

如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键。由此可见,外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字

为了防止不符合规范的数据进入数据库,在用户对数据进行插入、修改删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确、有效、相容。

级联删除,即在删除product表中的记录时同时删除orderitem表中的相关记录

后面发现这个 在代码里有相关的对策cascade = “delete”,但是可能我忘记写了吧,现在补上:

<many-to-one name="product" lazy="false" cascade = "delete" not-found="ignore" class="cn.itcast.shop.product.vo.Product" column="pid"  ></many-to-one>

关于cascade = “delete”还有inverse="true"偶滴这篇小文有写,移步请点;但是告诉你们一个秘密就是我的问题不是这么解决

下面就无私地告诉你们第二个解决方案:删除外键索引,这个其实一点low,开始我再数据库中删、竟然不让删除,多次无果我果断把数据库删除了(有脚本任性)执行了一次脚本重新导入,删的话MysqL听话多了,特别利索地搞定、问题解决

不知道大家有没有注意到上面代码中的:not-found="ignore",这个是没有No row with the given identifier exists 的问题

这个是上面问题的遗留啦,删除之后外键关联的对应主键内容不存在,有了脏数据,就这样了

如果hibenrate设置的单项关联,即使a中的id2为null值,b中id2中有值,查询都不会出错.但是如果a中的id2字段有值,但是这个值在b中主键值里并没有,就会报上面的错!

如果hibernate是双向关联,那么a中的id2为null值,但是b中如果有值,就会报这个错.这种情况目前的解决办法就是改成单项关联,或者把不对应的数据改对! 点击打开链接

所以:设断点或者怎样找到 脏数据删除,或者就像上面ignore

下一个:no find a getter fo orders in class cn,itcast.shop.order.vo.User 大概是这个意思,看来wuli记忆力还可以撒

<set name="orders" cascade="delete" lazy="false" >
	<key column="uid"/>
        <one-to-many class="cn.itcast.shop.order.vo.Order"/>
</set>

这个是哪里报错了?上网查 找order类再找user类,无用功用过之后,find到了真正的原因、链接忘了,这个记忆力再好估计也想不起来了吧O(∩_∩)O

没有广告、马上回来:User.java中少些了 orders(⊙﹏⊙)b

 private Set<Order> orders = new HashSet<Order>();
	public Set<Order> getOrders() {
		return orders;
	}
	public void setOrders(Set<Order> orders) {
		this.orders = orders;
	}

还有啥、忘记了,想起来再补吧

小记:

这么多错大概是因为少写了东西造成的,认真、认真再认真

其实我还是挺认真的,毕竟还是有那么一段时间,代码敲出来清一色 运行极其顺利,好怀念;不过那段时间也没有学到什么新东西,对SSH框架、整个商场的逻辑倒是熟悉了,这样想着 偶尔写错个代码也挺好的,喜欢自虐O(∩_∩)O,其实不是、通过这些错误学到了东西、收获了一些知识

开始遇到错误内心是抗拒的,因为手里的项目还有实习的事情也没想赶紧结束这个进度,所以有问题就放着结果、你晓得,自己种下的苦果自己尝,遇到问题解决问题,效率要提高

商城结束要感谢银铃大美女,李硕,王啸、刚鹏还有建敏的慷慨帮助,在下在此谢过了,不胜感激

猜你在找的XML相关文章