Class DaoFactory

  • Direct Known Subclasses:
    SpringDaoFactory

    public class DaoFactory
    extends java.lang.Object
    • 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 Repository
        exceptionTranslator - 异常翻译
    • 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_READ
        action - 函数
        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()
        迁移数据版本
      • check

        public void check()
        检查数据结构
      • getInstance

        public <T> T getInstance​(java.lang.Class<T> clazz)
        获取数据访问对象/表操作对象的实例
        Type Parameters:
        T - 数据访问对象/表操作对象类型
        Parameters:
        clazz - 数据访问对象/表操作对象Class
        Returns:
        数据访问对象/表操作对象实例
        Throws:
        SqlExRepositoryNotMatchException - 给定的类型不属于Factory管理的Repository