4 DatabaseService详细设计 图6 DatabaseService结构图 可以对比一下DatabaseService和TCPServerService的结构图,你会发现他们是那么地相似。对的,它们的设计思路如出一辙。DatabaseService实现了IService和IDatabaseService这两个接口。IDatabaseService主要只提供了3个接口: 1) Connect 连接到一个数据库 2) Query 进行查询。 这里有两点要注意:1) Query以后不会立马得到结果,因为这是异步的; 2) 存储过程的调用也得使用这个方法,你只要将query语句写成 'select stroage_procedure(param1,param2,...)' 就行了。 3) SetObserver 设置观察者。因为查询是异步的,所以你要设一个观察者来得到通知。 DatabaseService管理着一些数据库连接DBConnect, 每一个DBConnect也与一个整数标识相关联,可以通过GetIndex获得。同时你可以通过IsConnect来查询这个DBConnect是否处于连接状态。 在实现IDBServiceObserver时,你需要实现下面两个方法: 1) OnDBConnect 在数据库连接建立时会调用 2) OnQueryEnd 在这里你可以得到一个表示查询结果的QueryResult对象。你可以通过它知道查询的状态,以及结果信息。 |