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