功能总结
智能分析模块
页面的制作:运用的easyui,就是一些表格,按钮,图表
功能的完成:domain的创建
query的创建
mapper的创建
mapper.xml的创建
表单查询的sql
查询所有的sql
高级查询,所有不同条件的查询都是这个sql
service的创建
增删改查的方法和高级查询的方法
serviceImpl的创建
增删改查的方法,高级查询的方法
controller的创建
高级查询的方法,今日,昨日等的查询方法都是这个
心得总结
2019年7月5日我们完成了我们的第一个分组多模块开发的项目,通过这次的项目开发,自己学到了很多东西,自己写js代码的能力大大提升,对easyui的使用也更加的熟练了,对真实项目的开发流程也有了初步的了解和体验,对我们以后进入到公司以后的工作有很大的帮助。
首先,第一天,得到任务后,对自己分到的模块进行了初步的需求分析,最开始,完全没有头绪,不知道从何入手,在和同组的队友交流讨论后,开始有了一点大概的思路,然后就开始了,自己的模块的完成之路。
我分到的时智能分析模块,此模块的主要功能就是展示数据,最主要的就是做出一些报表,数据表格展示,还有一些图表,在大概知道自己需要做什么后,开始了第一步,页面代码的完成,这一步最开始觉得很难,自己很少写前端代码,在通过自己慢慢的查看文档和资料,慢慢的开始写前端页面。在写页面的过程中,熟练了对easyui的使用,在这过程中遇到了很多问题,都是通过询问或者自己查资料来解决的,慢慢的就完成了页面的制作。
然后开始了对其功能的实现,遇到的第一个难题是,一个今日,昨日,本周,本月,其它按钮的查询,最开始想的是,通过几个不同的sql进行查询得到结果,后来发现这样写,太复杂了,而且重复代码太多,显得页面很乱,而且我做的模块大部分页面都有这个功能,所以如果每次都写一条sql和查询方法,那就太多了。后来想了个办法,通过给每个不同的按钮附一个值,让它在点击的时候,给后台传回一个不同的参数,而后台通过if条件来判断,该使用哪个where语句,这样就解决了写多个sql和多个方法的问题。在后面不断的写功能和页面之后,发现这页面的代码也是一样的,所以对其进行了抽取,提供了一个公共的js,通过调用这个js就能实现这个页面,解决了页面重复代码太多的问题。而且在后台查询条件query的时候,也对其提供了一个公共的条件,里面有今日,昨日,其他的擦汗寻条件,然后再给本月,本周的查询分别提供了一个query来继承公共的query,在本周和本月下提供了两个不同的查询条件的自读按,这样又解决了写query的时候里面每次都有相同的字段。
第二个问题是,柱形图的展示,因为柱形图自己没有做过,但是做过一次饼图,所以通过去查看原来的饼图是怎么完成的,来对柱形图的完成有了一定的思。,开始做的时候,因为柱形图需要一个x轴上的数据和你要展示的是哪个字段的数据,所以需要对查询返回的结果进行去除各自需要的部分,而它所需要我们返回的值,必须是一个集合形式,意味着,我的返回的结果里面有两个不同的集合,而且还要能够分别取出来。最开始可能短路了,想了好久没想出来怎么才能从结果里面取回两个不同的集合,通过询问队友,提示了一句返回一个对象不就行了嘛,瞬间恍然大悟,自己只需要对查询结果进行封装,封装到一个对象里面,而这个对象里面有你需要展示的不同数据的集合,通过对不同的集合设置相应的查询的结果即可。果然,通过这个思路,自己开始写起了代码,最后一运行,柱状图出来了,此问题就解决了。这个柱状图会左后,后面的不同的图表,就能更快的完成了,因为对图表功能的完成有了大致的印象了,按着它需要的数据和格式返回即可。
然后就是各种小问题,在做到一半多的时候,又有好几个查询,在展示一个图表那里,有两个不同的排行按钮,点击不同的按钮,图表会展示不同的内容,而且点击本月,今日这些时也会展示不同的内容,这就需要在图表的查询里面动态的写这些相应的条件,想了很久都想不清楚,怎么才能把这几个按钮的查询条件集合在一起。最后通过队友的分析讨论和思考后,慢慢的有了思路,也解决了这个问题,虽然问题解决了,但是我依然发现我的查询写的好复杂,目前还没解决,正在想办法写的精简一些。
在这次的分组完成项目中,我最大的收获就是,独立写代码的能力大大提高了,以前依赖老师的代码,而这次老师不会将代码,只说思路,自己通过思考而写的代码,最终也完成了功能,自己在这过程中,对代码的理解也更深了。另外的就是,在最后整合项目的时候,我发现同组的一个组员,它的联表查询写的很简便,比起我自己的联表查询简单了很多,他查询需要的参数,在mapper里面也写的很简单。而我自己的,在传多个参数的时候,需要对每个字段进行取别名,这就导致字段一多,查询方法写的查询字段很多,看着很难受。而他的是,通过传入一个map对象,所以在mapper的查询方法里只需要一个map对象即可,而这个map对象,只需要在service的实现类将我们查询所需要的条件,put到map对象里面即可,从而使得代码更简洁,也更方便了。而且通过创建一个类,这个类里面有我们查询结果里面所有的字段,而这个类不会在数据库里面有表,它是通过其他表联合查询而来,这样做的母的就是,使得mapper.xml里面的配置减少了很多,不需要去自己手动的一个一个去映射,减少了很多的代码。