MyBatis架构分为四层:第一层即配置加载,配置有两个地方产生,一是配置文件如MyBatis-config.XML文件以及iBatis的sqlmap-config.XML文件,在里面定义了数据库的连接环境以及连接字符串,以及Java的POJOs的映射(框架中的SQL语句不能识别Java中的类,要在配置文件中一一映射,相当于SQL语句中的别名,标签为TypeAlias),二是Java的注解代码,将SQL的配置信息加载成一个个MappedStatement对象,存储在内存中。文献综述
第二层即是SQL解析层,当接口层接收到调用的请求时,会将通过SQL的ID找到要执行的SQL语句,通过将传入的对象(可能是Map,POJOs或者是基本数据类型)然后通过将参数添加到对应的SQL语句,得到最终要执行的SQL语句,通过log4j.properties文件的输出信息来看,配置的SQL语句相当于Java中的PreparedStatement,在解析的调用类似setString的方法将参数传入。
第三层即是SQL执行,将SQL语句发到后台数据执行,得到执行结果,select拿到数据集。其他的操作怎没有相应的返回值。
第四层即结果映射,将通过数据库拿到结果集,按找字段名字段封装对应的Java类型或者POJOs,当然结果还可能是Map,可以通过result标签来对应到相应的类型中,当一个类型中有collection的对象时,可以用collection标签表明集合中的数据类型,当一个类型中有另外一种类型时,可以通过association标签对类型的字段进行映射。
3 需求分析
3.1 功能需求
3.1.1 功能描述
服务器端的功能主要是根据数据库中的用户信息对客户端的请求做出相应的判断以及响应;客户端的功能则是正确的操作数据的信息,完成数据库的增加、删除、修改、删除等功能,并且能通过和服务器的交互完成客户端之间的通信。
服务器的功能:
● 用户验证:在用户开机联网的时候对用户的合法性进行验证。如果合法,并且查询数据库中是否有属于该用户的未发短信。
● 用户呼叫:根据用户拨打的号码查询用户是否存在,如果存在,则进行用户呼叫功能。
● 短信服务:根据收信人的号码,验证合法性,判断是否开机,如果开机则直接转发,否则存储在短信缓存中。
● 统计功能:统计每个用户的发送短信数量,总共的拨号时间。
● 短信缓存功能:如果收件用户未开机的,则将短信存在服务器端,并且在收件用户在用户开机时,将短信回发给用户。
客户端的功能:
● 开机/关机功能:根据用户的号码进行开机功能。
● 主叫功能:可以拨打一个号码或者拨打通讯录中的联系人。
● 被叫功能:接受或者拒绝一个用户的呼叫。
● 短信发送功能:向一个号码或者一个通讯录中的联系人发送短信,支持群发功能,支持通讯录中选取多个联系人。
● 短信接收功能:接受一个用户发来的短信,如果不是出于通话状态,立即显示出来。
● 短信管理功能:显示短信的信息,可以进行回复,删除等操作。
● 通讯录管理:添加联系人,删除联系人等功能。
● 通话记录功能:查看每次通话的通话记录。
● 时间显示:显示当前的精确时间。
3.2 可行性分析源:自~751·论`文'网·www.751com.cn/
可行性的分析主要取决于当前的硬件设施以及软件的成熟度是否能支持当前的软件开发,能否提供可行的解决方案。这是软件开发能否成功的关键,软硬件的配置情况的合理会减少开发的难度。
硬件方面:现在个人PC的配置一般能支持大部分的软件开发工作,我的电脑主要配置为酷睿双核,2.2GHz的主频,完全能支持软件所要求的多线程要求以及对反应时间的严格限制。系统为32位WIN7系统,对绝大部分的软件支持程度较高,对低版本的软件的兼容性比较高。