学了14天,终于把Java项目一做完啦

330 阅读4分钟

今天是刘小爱自学Java的第113天。

感谢你的观看,谢谢你。

话不多说,开始今天的学习:

今天过后项目一也就算是结束了。

明天开始学SSM框架,再用SSM框架优化这个小项目作为练习。

我觉得框架是一个分水岭,所以决定对前段时间的学习状况做一个思想上的反思,双休时完成该任务,而今天的安排是:

  • 先对昨天收藏业务代码的纠错,自己犯的一些错误点小结。

  • 然后学下事务在项目中的使用。

  • 最后说点闲话。

一、自己犯的一些错误

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

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

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全家桶,我来啦!

最后

谢谢你的观看。

如果可以的话,麻烦帮忙点个赞,谢谢你。