自定义数据库策略
想实现框架支持的数据库之外的数据库,可以通过自定义新的数据库策略来实现。
第 1 步:实现数据库策略
实现接口com.tangzc.autotable.core.strategy.IStrategy,接口定义如下:
java
public interface IStrategy<TABLE_META extends TableMetadata, COMPARE_TABLE_INFO extends CompareTableInfo, MAPPER> {
/**
* 策略对应的数据库方言,与数据库驱动中的接口{@link java.sql.DatabaseMetaData#getDatabaseProductName()}实现返回值一致
*
* @return 方言
*/
String databaseDialect();
/**
* java字段类型与数据库类型映射关系
*
* @return 映射
*/
Map<Class<?>, DefaultTypeEnumInterface> typeMapping();
/**
* 根据表名删除表
*
* @param tableName 表名
*/
String dropTable(String tableName);
/**
* 分析Bean,得到元数据信息
*
* @param beanClass 待分析的class
* @return 表元信息
*/
@NonNull TABLE_META analyseClass(Class<?> beanClass);
/**
* 生成创建表的SQL
*
* @param tableMetadata 表元数据
*/
List<String> createTable(TABLE_META tableMetadata);
/**
* 对比表与bean的差异
*
* @param tableMetadata 表元数据
* @return 待修改的表信息描述
*/
@NonNull COMPARE_TABLE_INFO compareTable(TABLE_META tableMetadata);
/**
* 生成修改表的SQL
*
* @param compareTableInfo 修改表的描述信息
*/
List<String> modifyTable(COMPARE_TABLE_INFO compareTableInfo);
}
第 2 步:注入Spring/配置到全局配置
- Spring应用,直接将实现类注入IOC容器即可。
- 普通java应用,需要调用AutoTableGlobalConfig.addStrategy,手动配置到全局配置中。
详细教程待完善。。。