商城之点滴错误总结

写来惭愧,做商城的时候遇到了不少的错但是笔记记下来的很少,仅有的 最后留心记下来的 也在我刚才多次地复制粘贴的过程中烟消云散了,但是还是感觉应该记录一下,要不凭我这转眼即逝的记性(⊙﹏⊙)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,其实不是、通过这些错误学到了东西、收获了一些知识

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇