数据库读、写过程中的类型转换
读取数据库的过程中,驱动类从数据库中读取出数据后,会有一步类型转换的过程,通常情况下内置的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