sharding-sql-test
- 模块结构
sharding-sql-test的主要功能是对sql测试用例xml文件进行加载,生成测试用例封装在SQLCases对象中,JAXB 实现java对象与xml之间互相转换
。包含三个部分:
- org.apache.shardingsphere.test.sql.loader。对外提供了SQL Cases的三种注册中心,里面含有SQLCasesLoader属性来读取配置文件。
- org.apache.shardingsphere.test.sql.SQLCase。对应与xml里部分的实体类,包含属性:id,value,databaseTypes和sqlType。
- org.apache.shardingsphere.test.sql.SQLCases。对应与xml里部分的实体类,包含属性:databaseTypes和sqlCases。
- org.apache.shardingsphere.test.sql.SQLCaseType。定义两种SQL类型,Literal是指值已经写在sql语句中,Placeholder是指sql语句使用?来做parameter的占位符。
模块结构图
设计模式和设计原则
- 单例模式
EncryptSQLCasesRegistry,ShardingSQLCasesRegistry,ShardingUnsupportedSQLCasesRegistry这三个都采用了单例模式。内部只有一个属性private SQLCasesLoader sqlCasesLoader;
用于加载测试用例文件。
保证一个类仅有一个实例,并提供一个访问它的全局访问点。避免一个全局使用的类频繁地创建与销毁,此外单个实例还节省了内存资源。