Излишне говорить, что преимущества обучения исходного кода невелики по объему и просты по логике, поэтому я напишу серию статей для изучения.
SQLSession
Портал использования Mybatis расположен в SQLSession в пакете org.apache.ibatis.session. Установлено, что это интерфейс, и в пакете org.apache.ibatis.session.session.session.session.session.session.session.Session.Session.Session.Session.Session.Session.Session.Session.Session.Session.Session.Session.Session.Session.Session.Session.Session.Session.Session.Session.Session.Session.Session.Session.Session.Session.Session.Session.Session.Session.Session. Мы никогда не стали новыми этим классом, и, согласно конвенциям Java, используем фабричный метод в SQLSessionFactory. Я обнаружил, что это также интерфейс, поэтому должен быть класс реализации по умолчанию DefaultqlSessionFactory. Этот класс по -прежнему не должен быть создан сам по себе, и использует фабричный метод в SQLSessionFactoryBuilder.
DefaultqlSession
Основные методы DefaultqlSession:
1) Курсор <T> SELECTCURSOR (оператор строки, параметр объекта, ROWBOUNDS ROWBOUNDS), делегирован The Executor.QueryCursor (MS, wrapCollection (параметр), Rowbounds).
2) Список <e> selectlist (оператор строки, параметр объекта, rowbounds Rowbounds) и void select (string startice, параметр объекта, Rowbounds Rowbounds, Результандлер) и делегируйте The Executor.query (MS, wrapCollection (параметр), Rowbounds, Handler).
3) int update (string ratement, параметр объекта), делегируйте The executor.Update (MS, wrapCollection (параметр)).
Видно, что есть исполнитель, который в конце концов завершит его.
Исполнитель
Исполнитель находится в пакете org.apache.ibatis.executor. Это интерфейс. Классами реализации являются Basexecutor и CachingExecutor. Среди них Baseexecutor абстрактно и имеет три подкласса SimpleExecutor, Reuseexecutor и Batchexecutor. Смотрите имя и узнайте значение. Основные методы в Baseexecutor:
1) Список <e> Query (MapedStatement MS, параметр объекта, Rowbounds Rowbounds, Resulthandler Resulthandler, Cachekey Key, Boundsql Boundsql) и список <e> QueryFromDatabase (MapedStatement MS, параметр объекта, ряды строк, ограниченные, связанные с строями, связаны с строями, связаны с строями, связаны с строями, связаны с строями, связаны с рядами, связаны с рядами, ограниченные, связанные с рядами, связаны с строями, связаны с рядами). Аннотация <e> list <e> doquery (MapedStatement MS, параметр объекта, Rowbounds Rowbounds, Resulthandler Resulthandler, Boundsql Boundsql).
2) Курсор <e> QueryCursor (MapedStatement MS, параметр объекта, Rowbounds Rowbounds), делегирован для абстрактного <e> cursor <e> doquerycursor (MapedStatement MS, параметр объекта, ряды строк Rowbounds, Boundsql boundsql).
3) int update (MapedStatement MS, параметр объекта), делегируйте Abstract int doupdate (MapedStatement MS, параметр объекта).
Базовый класс обрабатывает публичную часть, оставляя ее в реализации подкласса.
Давайте посмотрим на основные методы в SimpleExecutor:
1) Список <e> Doquery (MapedStatement MS, параметр объекта, Rowbounds Rowbounds, Результандлер Результандлер, Boundsql Boundsql), делегирован для обработчика. <e> Запрос (STMT, Resulthandler).
2) Курсор <e> Doquerycursor (MapedStatement MS, параметр объекта, Rowbounds Rowbounds, BoundSQL Boundsql), поручено обработчику. <e> QueryCursor (STMT).
3) int doupdate (MapedStatement MS, параметр объекта), делегируйте Handler.Update (STMT).
Видно, что он наконец обрабатывается обработчиком.
Заявление
Заявление Handler находится в пакете org.apache.ibatis.executor.statement. Это интерфейс. Классами реализации являются базовым оттенком и маршрутизационным и RoutingStatementHandler. BasestatementHandler является абстрактным и имеет три подкласса SimpletatementHandler, PreditStatementHandler и CallablestatementHandler. Эти три должны быть знакомы, и они должны обрабатывать операторы SQL без параметров, параметризованных операторов SQL и хранимых процедур соответственно. Давайте посмотрим на основные методы в простом простых. Handler:
1) Список <e> Query (Заявление оператора, получение Resulthandler Resulthandler), делегируйте заявление. Execute (SQL).
2) Курсор <e> QueryCursor (оператор оператора), делегируйте оператору. Execute (SQL).
3) int Update (оператор оператора), делегируйте To Apport.Execute (SQL).
Наконец, SQL выполняется оператором. Это возвращается в пакет java.sql.
Mybatis в основном завершает обработку инкапсуляции параметров SQL, получает набор результатов и генерирует объекты и оставляет процесс строительства операторов SQL для пользователя. Автор Mybatis разработал это таким образом. Хотя структура в целом является полуавтоматической, ее гибкость была значительно увеличена.