Package me.danwi.sqlex.core
Class DaoFactory
java.lang.Object
me.danwi.sqlex.core.DaoFactory
- Direct Known Subclasses:
SpringDaoFactory
-
Constructor Summary
ConstructorsConstructorDescriptionDaoFactory(String url, String username, String password, Class<? extends RepositoryLike> repository) 新建数据访问对象工厂实例DaoFactory(DataSource dataSource, Class<? extends RepositoryLike> repository) 新建数据访问对象工厂实例,使用默认事务管理器DaoFactory(TransactionManager transactionManager, Class<? extends RepositoryLike> repository, ExceptionTranslator exceptionTranslator) 使用指定的事务管理器来新建数据访问对象工厂实例 -
Method Summary
Modifier and TypeMethodDescriptionvoidcheck()检查数据结构获取异常转换/翻译器<T> TgetInstance(Class<T> clazz) 获取数据访问对象/表操作对象的实例获取原生SQL执行器getRawSQLExecutor(Connection connection) 获取原生SQL执行器,不从事务管理器中获取连接,而是使用指定的连接Class<?>获取该Dao工厂做管理的SqlEx Repositoryvoidmigrate()迁移到最近版本voidmigrate(MigrateCallback callback) 迁移到最近版本新建连接新建事务,适合手动管理事务voidsetDatabaseName(String name, String actualName) 设置外部数据库在运行时的实际名称<T> Ttransaction(Integer transactionIsolationLevel, TransactionAction<T> action) 以事务的方式来运行函数voidtransaction(Integer transactionIsolationLevel, TransactionActionReturnVoid action) 以事务的方式来运行函数,函数无返回值<T> Ttransaction(TransactionAction<T> action) 以事务的方式来运行函数 使用默认事务隔离级别void以事务的方式来运行函数,函数无返回值 使用默认事务隔离级别
-
Constructor Details
-
DaoFactory
public DaoFactory(String url, String username, String password, Class<? extends RepositoryLike> repository) 新建数据访问对象工厂实例- Parameters:
url- 连接username- 用户名password- 密码repository- SqlEx Repository
-
DaoFactory
新建数据访问对象工厂实例,使用默认事务管理器- Parameters:
dataSource- 数据源repository- SqlEx Repository
-
DaoFactory
public DaoFactory(TransactionManager transactionManager, Class<? extends RepositoryLike> repository, ExceptionTranslator exceptionTranslator) 使用指定的事务管理器来新建数据访问对象工厂实例- Parameters:
transactionManager- 事务管理器repository- SqlEx RepositoryexceptionTranslator- 异常翻译
-
-
Method Details
-
newTransaction
新建事务,适合手动管理事务- Returns:
- 事务
-
transaction
以事务的方式来运行函数 使用默认事务隔离级别- Type Parameters:
T- 闭包函数的返回值- Parameters:
action- 函数- Returns:
- 返回闭包函数的返回值
- Throws:
SqlExUndeclaredException- action运行过程中的Checked异常包装
-
transaction
以事务的方式来运行函数,函数无返回值 使用默认事务隔离级别- Parameters:
action- 函数- Throws:
SqlExUndeclaredException- action运行过程中的Checked异常包装
-
transaction
以事务的方式来运行函数,函数无返回值- Parameters:
transactionIsolationLevel- 事务隔离级别, 例如:Connection.TRANSACTION_REPEATABLE_READaction- 函数- Throws:
SqlExUndeclaredException- action运行过程中的Checked异常包装
-
transaction
以事务的方式来运行函数- Type Parameters:
T- 闭包函数的返回值- Parameters:
action- 函数transactionIsolationLevel- 事务隔离级别, 例如:Connection.TRANSACTION_REPEATABLE_READ- Returns:
- 返回闭包函数的返回值
- Throws:
SqlExUndeclaredException- action运行过程中的Checked异常包装
-
newConnection
新建连接- Returns:
- 新建的数据连接
-
getRepositoryClass
获取该Dao工厂做管理的SqlEx Repository- Returns:
- SqlEx Repository
-
getExceptionTranslator
获取异常转换/翻译器- Returns:
- 异常转换/翻译器
-
migrate
public void migrate()迁移到最近版本 -
migrate
迁移到最近版本- Parameters:
callback- 迁移回调
-
check
public void check()检查数据结构 -
setDatabaseName
设置外部数据库在运行时的实际名称- Parameters:
name- 在Repository定义的数据库名称actualName- 运行时实际名称
-
getInstance
获取数据访问对象/表操作对象的实例- Type Parameters:
T- 数据访问对象/表操作对象类型- Parameters:
clazz- 数据访问对象/表操作对象Class- Returns:
- 数据访问对象/表操作对象实例
- Throws:
SqlExRepositoryNotMatchException- 给定的类型不属于Factory管理的Repository
-
getRawSQLExecutor
获取原生SQL执行器- Returns:
- 原生SQL执行器
-
getRawSQLExecutor
获取原生SQL执行器,不从事务管理器中获取连接,而是使用指定的连接- Parameters:
connection- 指定SQL执行的连接- Returns:
- 原生SQL执行器
-