前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【JavaWeb】113:项目一结束了

【JavaWeb】113:项目一结束了

作者头像
刘小爱
发布2020-08-07 16:58:12
3170
发布2020-08-07 16:58:12
举报
文章被收录于专栏:零基础自学Java零基础自学Java

一、自己犯的一些错误

有的因为自己没有理解用法,只知道死记硬背,想当然的写代码。

有的纯粹就是一些低级错误。

1jdbcTemplate的使用

关于查询操作与增删改操作的区别。

增删改操作是不需要映射器的,在昨天的编写代码过程中出过好几次这个错误。

我仔细想了想原因,发现是我将①和③弄混了。

①是修改操作,返回值是int类型。

但是它并不是从数据库中查询的一个结果,它只是用数字来判断修改是成功还是失败。

虽然我也不明白它为何不用boolean值判断。

③是查询操作,返回值也是int类型。

但是它是从数据库中查询出来的一个结果,上述是统计总条数,所以需要映射器。

2前端无法获取json数据

这是我犯过好几次的一个错误,就是服务器响应数据成功,浏览器控制台上也能看到数据。

但是使用result就是无法取出数据。

后来才反应过来是前端json参数的问题,一检查果然是这样的。

凡是无法获取json数据,一般就是这个参数的问题,要么忘记写了,要么位置写错了。

3选择器

这个不用多说,简直就是低级错误了,id选择器格式问题。

应该是当时给对应标签设置了一个id,然后直接就复制过来了,没有注意到格式问题。

二、事务管理

在收藏中,里面有业务逻辑是这样的:

  • 用户点击收藏,收藏表添加一条数据。
  • 同时商品表中的收藏数也要增加一。

昨天的代码有一个问题就是:收藏成功了,收藏表添加了一条数据。

但是增加商品表中的收藏数时失败了,最终收藏数并没有增加。

按照我们的业务需求,这样显然是不行的,这两个功能,要么同时成功要么同时失败。

在数据库中使用事务就能解决这个问题:

①开启事务管理管理器

不要看这块的代码超级长,其实就是几个常见单词组成的:

  • Transaction:事务的意思
  • Synchronization:同步、锁的意思
  • Manager:管理的意思
  • init:初始化的意思

大致就可以理解成,将当前事务给初始化了一个锁,与所在的线程绑定。

②开启事务

事务默认是自动提交的,我们这里要手动提交,所以将事务自动提交设置成false。

再将template作为参数传入需要绑定的业务中,这样就将它们给绑定事务了。

③事务的提交与回滚

如果不报错,事务提交,调用commit方法即可。

如果报错,事务回滚,调用rollback方法即可。

④最后业务执行完后

将当前线程和该连接解锁。

在dao层中,查询数据库使用的就是service层传来的参数了,也就是局部变量。

我们都知道,当全局变量和局部变量同名时,会优先使用局部变量。

三、说点闲话

这个小项目,有一些业务被我跳过了,没有做完,比如收藏模块的分页功能实现。

因为我前面花了近3天时间仔细学了商品模块的分页,它们的实现方式是一样的。

并且听说这种方式特low,有插件可以直接用,我想了想也就直接跳过了。

我在网上查了下,确实有一个叫layui的分页插件,据说挺好用的。

关于项目部署什么的也被我跳过了,只能说以后学了项目二项目三之后再回头来学了。

主要是自己对于框架的学习也挺好奇的,天天有人对我说怎么不用框架,框架非常好用什么的。

弄得我都已经迫不及待地想要一探究竟了。

所幸我也不再磨叽了,直接开始框架学习,spring全家桶,我来啦!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 刘小爱 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 二、事务管理
  • 三、说点闲话
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档