Быстрая популяризация
1. Что такое mybatis
Mybatis - отличная структура слоя настойчивости, которая поддерживает простые запросы SQL, сохраненные процедуры и расширенное картирование.
Mybatis устраняет ручные настройки почти всех кодов JDBC и параметров и поисковой инкапсуляции набора результатов. Mybatis может использовать простые XML или аннотации для конфигурации и оригинального отображения, отображения интерфейсов и Pojos Java (простые старые объекты Java) в записи в базе данных.
Mybatis реализует привязку интерфейса, что делает его более удобным в использовании.
Улучшенное отображение отношений объектов, более эффективное
Mybatis использует мощные выражения на основе Ognl для устранения других элементов.
2. Функциональная архитектура
3. Процесс выполнения
Подробное объяснение принципа:
Приложение Mybatis создает SQLSessionFactory на основе файла конфигурации XML. Конфигурация поступает из двух мест в соответствии с конфигурацией, одним из них является файл конфигурации, а другой - аннотация кода Java и получает SQLSession. SQLSession содержит все методы, необходимые для выполнения SQL. Вы можете напрямую запустить отображенные операторы SQL через экземпляр SQLSession, чтобы завершить добавление данных, удаление, модификацию и запрос, подчинение транзакций и т. Д., А также закрыть SQLSession после использования.
Давайте посмотрим на ключевые моменты этой статьи. Mybatis простые аннотации
Ключевые аннотационные слова:
@Insert: вставьте SQL, синтаксис точно такой же, как XML вставка SQL
@Select: Query SQL, а синтаксис точно такой же, как XML SELECT SQL
@Update: обновление SQL, и синтаксис XML Update SQL точно такой же
@Delete: Delete SQL, а синтаксис точно такой же, как XML Delete SQL
@Param: введите женьшень
@Results: коллекция результатов
@Result: результаты
1. Доменная модель:
открытый класс userdo {private long id; public string username; частная дата gmtcreate; частная дата gmtmodified; public long getId () {return id;} public void setId (long id) {this.id = id;} public String getUsername () {return username;} public void setusernam getGmtCreate () {return gmtCreate;} public void setGmtCreate (date gmtcreate) {this.gmtcreate = gmtcreate;} public date getGmtmodified () {return gmtModified;} public void setGmTified (date gmtmodified) {thismodified; gmtmodified;}}2. Определение интерфейса:
public interface userdao {@Insert ("inSert in to_user (gmt_create, gmt_modified, user_name) values (own (), now (), #{usermeme})") public int insert (@param ("username") string username); @Select ("select * from t_user, где id = #{id}") public userdo selectbyuserid (@param ("id") long id); @update ("Обновление t_user set gmt_modified = how @Param ("id") long id); @delete ("delete from t_user, где id = #{id}") public int udpatebyid (@param ("id") long id); }3. Mybatis XML config:
<!-аннотация mybatis-> <bean id = "sqlSessionFactory"> <name = "dataSource" ref = "mysqlbase" /> <!-Здесь вам нужно только настроить свой собственный источник данных-> < /bean> <bean id = "userdao"> <proportment = "mapperinterface" value = "com.yuang. Интерфейс-> <name = name = "sqlSessionFactory" ref = "sqlSessionFactory" /> <!-SQLSession Factory-> < /bean>
Таким образом, мы завершаем демонстрацию Mybatis, используя аннотации. Разве это не очень просто?
Если вы знакомы с Mybatis XML, в большинстве случаев нам нужно сопоставить названия поля таблиц базы данных для класса. Аннотация Mybatis также обеспечивает функции отображения, а синтаксис аналогичен.
@Select ("select * From tsp_template, где id = #{id}")@results (value = {@result (property = "username", column = "user_name", javatype = string.class, jdbctype = jdbctype.varchar)}) public userdo select (@Param ("ID");Конечно, вышесказанное просто то, что SQL больше не может быть простым. Подумайте об этом, если у нас есть это требование, мы обновляем пользовательскую информацию и надеемся обновить указанное значение атрибута. Другими словами, мы генерируем SQL динамически как XML. Тогда мы не можем просто и грубо использовать аннотацию @Update. К счастью, мощные Mybatis также обеспечивают динамическую сборку SQL.
Динамический SQL
Соответствующие отношения следующие
@Insert: @insertprovider
@Select: @SelectProvider
@Update: @UpdateProvider
@Delete: @deleteprovider
Четыре идентификаторы аннотаций поставщика используют динамический SQL и используйте синтаксический формат:
@UpdateProvider (type = userprovider.class, method = "updatesQl")
Как построить динамический SQL
открытый класс userprovider {/*** udpate* @param userdo userdo* @return*/public String updatesql (final userdo userdo) {return new sql () {{update ("t_user"); set ("gmt_modified = now ()"); if (userdo.getusermanme ()! #{username} ");} где (" id = #{id}} ");}}. toString ();}}Описки знаний, упомянутые в этой статье, относительно основные. Если вам нужно иметь глубокое понимание, пожалуйста, обратитесь к официальному документу веб-сайта или прочитайте исходный код.
Суммировать:
1. Как выбрать XML и аннотации? Это варьируется от человека к человеку. У каждого есть свои привычки кодирования. XML и аннотации имеют свои преимущества и недостатки. Недостатки XML: Когда атрибуты модели изменяются, их необходимо изменить с DAO на XML. Это будет боль, чтобы подумать об этом ~ XML также имеет преимущества. Повторное использование фрагмента SQL удобно, и синтаксис доступен. В отличие от аннотаций, вы должны построить динамический оператор и создать класс. Более того, когда на сегмент SQL ссылается несколько мест, код выглядит избыточным. В настоящее время XML должен использоваться для извлечения и использования его вместе. Я жаловался на аннотацию Mybatis, разве эта аннотация не была бы бесполезной? Нет, Mybatis подходит для сценариев, в которых часто изменяются атрибуты моделей, потому что его можно объединить с отражением и динамически построенным SQL (следует реализовать чисто чепуху, личные идеи, и это будет сделано в другой день). Можно сказать, что преимущества аннотации Mybatis восполняют недостатки XML. Два дополняют друг друга ~
Выше приведено быстрое начало аннотаций Mybatis Development, представленных редактором. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!