主要类结构如上图
sqlMapClient 代理sqlMapSession 类进行数据库操作,因为这里的session意味着每次请求,而大部分web服务器是单例多线程,即每个thread的请求周期,所以这里的session是通过threadLocal保存的。通过session类可以维护在请求过程中多次数据库访问,包括statement 数据库连接及其事务,减少每次数据库请求并处理的维护成本。
sqlMapSession的sqlMapExecutorDelegate 委托对象通过sqlMapClient中注入的。sqlMapSession代理sqlMapExecutorDelegate ,数据库操作增删改查等交由sqlMapExcutorDeletegate代理。
SqlMapClietnFactory是spring提供的工场类,因为sqlMapClient是线程安全的,即可以是单例的。
为什么要提供这个工场类暂没找到答案。