sharding-sql-test

  • 模块结构
    sharding-sql-test的主要功能是对sql测试用例xml文件进行加载,生成测试用例封装在SQLCases对象中,JAXB 实现java对象与xml之间互相转换
    。包含三个部分:
  1. org.apache.shardingsphere.test.sql.loader。对外提供了SQL Cases的三种注册中心,里面含有SQLCasesLoader属性来读取配置文件。
  2. org.apache.shardingsphere.test.sql.SQLCase。对应与xml里部分的实体类,包含属性:id,value,databaseTypes和sqlType。
  3. org.apache.shardingsphere.test.sql.SQLCases。对应与xml里部分的实体类,包含属性:databaseTypes和sqlCases。
  4. org.apache.shardingsphere.test.sql.SQLCaseType。定义两种SQL类型,Literal是指值已经写在sql语句中,Placeholder是指sql语句使用?来做parameter的占位符。
  • 模块结构图

  • 设计模式和设计原则

  1. 单例模式
    EncryptSQLCasesRegistry,ShardingSQLCasesRegistry,ShardingUnsupportedSQLCasesRegistry这三个都采用了单例模式。内部只有一个属性private SQLCasesLoader sqlCasesLoader;用于加载测试用例文件。
    保证一个类仅有一个实例,并提供一个访问它的全局访问点。避免一个全局使用的类频繁地创建与销毁,此外单个实例还节省了内存资源。