Предисловие
Большинство проектов теперь используют Mybatis, но некоторые компании используют Hibernate. Самая большая особенность использования mybatis заключается в том, что SQL должен быть написан сам по себе, а написание SQL требует передачи нескольких параметров. Столкнувшись с различными сложными бизнес -сценариями, проходные параметры также являются своего рода знанием.
Ниже мы суммируем следующие методы многопараметрической передачи.
Метод 1: метод передачи последовательных параметров
Числа в #{} представляют порядок, в котором вы передаете параметры.
Этот метод не рекомендуется использовать, выражение слоя SQL не является интуитивно понятным, и ошибки подвержены возникновению после регулировки порядка.
Метод 2: метод аннотации @param для прохождения параметров
Имя в #{} соответствует имени, измененное в аннотации @param.
Этот метод довольно интуитивно понятен, когда существует не так много параметров, поэтому рекомендуется его использовать.
Метод 3: Метод передачи параметров карты
Имя в #{} соответствует имени ключа в карте.
Этот метод подходит для прохождения нескольких параметров, а параметры летучими и могут быть гибко переданы.
Метод 4: Метод передачи параметров Java
Имя в #{} соответствует атрибутам члена в классе пользователя.
Этот метод очень интуитивно понятен, но он требует создания класса сущностей. Это нелегко расширить. Это требует добавления атрибутов для использования в соответствии с ситуацией.
Метод передачи параметров при использовании интерфейса Mapper
Когда Mybatis использует интерфейс Mapper для программирования, базовый слой использует динамический прокси -механизм, который вызывается на поверхности, но на самом деле он проходит через соответствующий метод SQLSession, вызываемый динамическим прокси, таким как SelectOne (). Заинтересованные друзья могут проверить метод getMapper () defaultqlSession, который в конечном итоге получит объект MapperProxy, который прокси -интерфейс Mapper. Когда объект MapperProxy вызывает метод интерфейса Mapper, он будет преобразовать передаваемые параметры, а затем использовать преобразованные параметры в качестве параметра для вызова соответствующих методов работы, соответствующих SQLSession (например, SelectOne, вставьте и т. Д.). Процесс преобразования может быть реализован со ссылкой на метод execute () MapperMethod. Проще говоря, следующие правила:
1. Если пропущенное проведено один параметр и не назван с аннотацией @Param, то соответствующий метод SQLSession называется непосредственно с одним параметром в качестве реального параметра.
2. Если передача не является одним параметром или содержит параметры, названные с аннотацией @Param, соответствующий параметр будет преобразован в карту для прохождения. Конкретные правила следующие:
2.1. Соответствующие параметры будут храниться в виде ключей в целевой карте в форме Param1, Param2 и Paramn в порядке. Первым параметром является Param1, а N -й параметр - это параметры.
2.2. Если параметр является параметром, названным с аннотацией @Param, он хранится на карте цели с именем, указанным @Param в качестве ключа.
2.3. Если параметры не названы в честь аннотации @Param, они хранятся в виде ключей в целевой карте в форме 0, 1 и N в порядке. Первый параметр - 0, а N -й параметр - N.
Суммировать
Вышеуказанное - все содержание этой статьи. Я надеюсь, что содержание этой статьи имеет определенную справочную ценность для каждого обучения или работы. Если у вас есть какие -либо вопросы, вы можете оставить сообщение для общения. Спасибо за поддержку Wulin.com.