上一次我们是先实现了JDBC对数据库的增删查改操作,然后在增加新信息过程中发现了新的问题,即当某一操作失败,为了维护数据库的一致性,我们需要回滚事务。在其中我们了解了事务的工作原理及相关代码的使用。
但是在前面的代码中,我们直接将数据库的链接和要完成增删查改的内容写入了原码,这种做法是非常不适于工业标准的。所以本次我们需要开始优化代码。
1.善用properties配置文件
新建一个dbconfig.properties文件用于存储数据库的URL,Driver,数据库用户名,数据库密码。目的是为了方便修改代码。
2..构造一个Connection链接工厂
完成从properties中读取配置信息,并以此为向导连接数据库。其中使用静态代码块和单例模式,以确保在程序执行过程中只会有一个ConnectionFactory实例。
3.构建DTO类,用以实现检索和存储与数据库交流的数据对象。
首先构建父类IdEntity,父类中存在Id成员变量,这也是所有子类应该具备的成员变量。
然后分别构建User和Adress子类,并生成相应的set(),get()方法。
4.构建DAO类
DAO类是数据访问对象,通过DAO来处理从数据库中取出的数据,或者通过DAO来存入要更新向数据库中的数据。DAO中包含大量的逻辑代码。
为了保证程序的可移植性,首先新建一个DAO的接口,构建类的外观,然后再去implements这个接口。
然后去implements这个接口:
最后在主函数中实例化DAO类的对象,实现向数据库传递信息。
总结:在整个代码优化过程中,包含了丰富的代码优化的思想。我们首先利用了properties来保存数据库的相关信息,然后利用ConnectionFactory的单例模式和makeConnection方法来完成对properties指向的数据库的连接。同时将与数据库进行交流的数据,抽象成一个DTO类。将与数据库数据交流的动作,抽象成一个DAO类。
原码链接如下:https://github.com/Dante-dan/JDBC