2018–12-11
1、数据库的几个表之间的关系,一定先要想好,数据库建立后,最好保证做到后面少改懂数据库原本内容,因为改动原数据的表的话(列,关系等,不包括插入数据),会比较麻烦,要改动内容较多,所以一定要一开始将表的数据结构和表之间的关系给建立好!
2、数据库中的三层模型 table ->model, bll,dll,gui 将其分层次,再后面的改动,或者整体思路都会清晰很多。
特别是再整个框架一开始搭的比较全面,后面的修改,扩展什么的都比较方便了!
3、数据库操作的返回思路,像combox等控件,传入的时候,是传入这个类的对象,然后用toString返回显示,
4、再各个相关的bll,dll中,都是对整个类对象进行操作,没有说现在看上去只用到了表中的一个列中的数据,查询后只查找,提取这个列数据,而是将这个表即相对应的model类创建出一个对象,即使现在只用到了一个列,但是我还算提取表中所有列,并且放到类对象中。
这样做的好处是当你要扩展功能时,发现不需要重新查找,提取其他列,直接从类对象中调用相关get方法来获得你想要的列数据即可,可扩展性强,而且代码健壮性也强,毕竟用对应model中的类对象保存也比只用基本类型数组保存要好的很多!
在这次图书馆数据库课程设计中,第一次借出到一个完整的软件,代码量加起来也w+,没什么经验,下面我概述一下做这种大点的项目常犯的错误,并且自己也累计了的一些经验:
-
代码注释:
-
代码注释最基本的是让自己也能看懂,所谓看懂,并不是说这些代码是什么意思,这更是基本的注释,难点和疑点,容易犯错点,逻辑绕弯比较大的点都是要做一些注释,避免后面继续浪费时间去想,去查阅,去发错,这种必要的注释是相当必要的! 代码注释最基本的是让自己也能看懂,所谓看懂,并不是说这些代码是什么意思,这更是基本的注释,难点和疑点,容易犯错点,逻辑绕弯比较大的点都是要做一些注释,避免后面继续浪费时间去想,去查阅,去发错,这种必要的注释是相当必要的!
-
再好一点就是写函数注释,因为像那种大的代码量的项目,如果你都把一些代码全放在main里面那将使整体的代码非常难看,而且到时候无论是调试,还算让别人看你代码都将是一种痛苦。 举个数据库课设的例子,model,dal,bal,gui四个层次,
-
gui很明显是界面展示,控件,这没什么,但是最好还算将每个Jpanel单独抽成一个函数,然后再丢进构造函数里面促使化,这样比较清晰,有条理,当然监听事件的的函数也可以放在一个函数里面,再丢进构造函数里面促使化。因为这样到时候出错修改bug,你就会很清楚错误出现再哪个函数里面,然后再配合函数的注释,你就能很快判断是哪个功能,那个部分出错了,这样无论是调试还是去修改逻辑都将大大的提高效率,而且逻辑也会很清晰,不会混乱!,所以啊! 想想自己当时出错的时候,一头雾水,甚至都忘了自己为什么要写这段逻辑代码,这将极大的影响心态和拖慢修改效率,切记!
-
然后就是dal。首先我先讲课设,然后再根据课设以小观大,累计以后做大项目所需要的经验和技巧。dal按道理只能添加数据库的基本操作,增添改差!为了代码的复用性,如果不是特意为了提高效率,不要每次修改一条数据,只添加一个列的修改,而是讲表中的所以列都添入进去,说是不清楚的,举个例子!
假设有Book表,列有bkName,bkID,bkpress,bkprice,bkQty 如果你没有按照我的抽象想法,你会创建如下几个函数: void upDateBookbkName (int bkID, String bkName){ String sql = "update Book set bkName = " + bkName + "where bkID = " + bkID; ..........后面就省略~ void upDateBoo bkpress(int bkID, String bkpress){ String sql = "update Book set bkpress = " + bkpress + "where bkID = " + bkID; ........ void upDateBookbkprice(int bkID, String bkprice){ Stringsql = "update Book set bkpress = " + bkprice + "where bkID = " + bkID; ...... } 这样你就会发现太麻烦了!还不如直接写个整体的update:如下 void upDateBoobk(Book book){ String sql = "update Book set bkpress = ?, bkID = ?, bkPrice = ?,bkPage = ? where bkID = ?" ............ 这里的Book是建立相对于的model,在JDBC中经量用类对象来调用,处理,不要单独用对应的字段来处理,如果表很多数据或者其他原因,为了提高效率可以这样!
-
最好是BLL,像很多逻辑判断的代码都可以全扔进去,也是前面所提到的,不要把很多代码丢进main函数里面(这里面的main是指主要的函数,调用事件处理之类的呀~),如果都丢进main函数里面,你会发现真的没清晰,代码量太大,看得也头疼,而且调试的时候也麻烦,所以就可以丢进BLL中,然后main()函数调用这些封装好的Bll里面的函数就好,这样就很清晰了!