Migo商城2.0 商品的添加功能实现 七
接着看商品的添加功能
向商品表添加一条记录。
商品的基本信息保存到:tb_item
商品的描述:tb_item_desc
下图数据库表分析 可以看出,为保证商品id不能重复,考虑到并发的需求,将自动增长删除
看下图jd商品id的设计是一个数值类型
这里用一个工具类IDUtils生成id
这里将商品描述和商品的基本数据分离:
商品描述的数据量大,会导致数据文件变大,影响查询速度。
后期会对商品描述数据的存储做改造,所以需要将描述数据分离
点击商品类目的叶子节点产生的事件
如图:
不再解释过多了
接着看新增页面的中的价格有个注意点:
再往下,商品描述,就是kindEditor的使用
1 导入js文件
2 商品描述
3 通过JS创建出富文本编辑器
最后,提交商品数据
1 | <a href="javascript:void(0)" class="easyui-linkbutton" onclick="submitForm()">提交</a> |
1 | function submitForm(){ |
如何做到更加明了的restful化,查jquery api 发现:
statusCode (默认值:
{}
)类型:PlainObject
数字HTTP代码,以及当响应具有对应的代码时执行的函数,所构成的对象。举个例子,以下代码将提醒响应状态是404:
1
2
3
4
5
6
7
8> $.ajax({
> statusCode: {
> 404: function() {
> alert( "page not found" );
> }
> }
> });
>
>
如果请求成功了,状态代码函数会取用和success回调函数同样的参数;如果以失败告终(包括3xx重定向),状态代码函数会取用和error回调函数同样的参数。
1.5
所以上述代码ajax提交这里可以更改为:
1 | //提交到后台的RESTful |
商品描述后台处理
因为使用了通用mapper,那就按照通用mapper的方法来
看@id 这样就可以认为是对应表的主键id了,一下子方便了不少,省去了,第一个版本中的添加属性条件的判断
1 | "tb_item_desc") (name = |
service代码实现:
因要保证事务一致性,所以保存商品和商品描述要在一个方法内实现,具体代码如下:
ItemDescService
:
1 | package com.migo.service; |
ItemService
1 | package com.migo.service; |
controller实现
1 | package com.migo.controller; |
运行项目
出错:
解决:
1 | package com.migo.mapper; |
1 | package com.migo.mapper; |
重启运行,添加图片的时候出错:
本来还以为是父子容器的关系,改了一下,发现原来是自己写属性配置文件是搞错了,真坑。。。
图片上传功能完成
插入图片描述,出错:
解决:
PicService
代码修改为:
1 |
|
商品增加成功,如图所示: