数据库读、写过程中的类型转换

最后更新:2023-11-15 05:30:38 | 状态:未完成

读取数据库的过程中,驱动类从数据库中读取出数据后,会有一步类型转换的过程,通常情况下内置的DataReader可以满足大部分的情况,

但如果遇到特殊情况比如希望转换成项目定义的类型,这时需要注册一个自定义的DataReader
/**
 * 注册 DataReader
 * @param dbt 仅针对type类型的数据库,如果不指定则对所有数据库通用
 * @param supports 支持的类型,或者通过reader.supports()返回 必选一个
 * @param reader DataReader 符合supports条件的数据 在从数据库中读取后由当前reader转换类型
 */
DataReaderFactory.reg(DatabaseType dbt, Object[] supports, DataReader reader)

//对所有数据库通用
DataReaderFactory.reg(Object[] supports, DataReader reader)

//需要reader实现Object[] supports()返回支持的类型
DataReaderFactory.reg(DataReader reader)

类似的
写入数据库的过程中,驱动类写入数据库之前,会有一步类型转换的过程,通常情况下内置的DataWriter可以满足大部分的情况,
但如果遇到特殊情况比如希望写入项目定义的类型,这时需要注册一个自定义的DataWriter

/**
 * 注册 DataWriter
 * @param dbt 仅针对type类型的数据库,如果不指定则对所有数据库通用
 * @param supports 支持的类型,或者通过writer.supports()返回 必选一个
 * @param writer DataWriter 符合supports条件的数据 在写入数据库之前由当前writer转换类型
 */
DataWriterFactory.reg(DatabaseType dbt, Object[] supports, DataWriter writer)

//对所有数据库通用
DataWriterFactory.reg(Object[] supports, DataWriter writer)

//需要writer实现Object[] supports()返回支持的类型
DataWriterFactory.reg(DataWriter writer)

关于系统内置Reader 与项目注册Reader的优先级
1.项目注册 针对当前数据库 的Reader
2.系统内置  针对当前数据库 的Reader
3.项目注册  针对当前数据库 的Reader
4.系统内置 所有数据库通用 的Reader

如果以上顺序不能符合项目需求,可以调用SystemDataReaderFactory.reg 来覆盖系统内置Reader

最近更新 搜索 提交