Это резюме Mybatis, я думаю, оно вам нужно!

Java MyBatis

предисловие

Только лысая голова может стать сильнее.

Текст был включен в мою избранную статью на GitHub, Welcome Star:GitHub.com/Zhongf UC очень…

Mybatis должен быть наиболее часто используемым фреймворком «уровня доступа к данным» в Китае.Я видел несколько систем нашей компании, и они в основном используют Mybatis.

Честно говоря, у меня нет глубокого понимания Mybatis, и я только на стадии «использования». Каждый день, чтобы добавить таблицу, добавить поле, чтобы написатьDAO/Mapper.

Причина, по которой я не углубился в Мибатис, скорее всего,Интервью не задавало слишком много вопросов., по крайней мере, я встречался со многими компаниями, когда рекрутировал в кампусе, и я не особо спрашивал меня о Mybatis.

Если Mybatis просто хочет «узнать, как пользоваться», ввод очень быстрый, и кажется, что это можно сделать за два-три дня.

Познакомьтесь с Мибатисом

О JDBC уже было сказано некоторое время назад.Независимо от того, что такое структура ORM (Object Relation Mapping), она инкапсулирует слой в JDBC, а нижний слой использует код JDBC.

Как мы все знаем, эффективность прямого написания кода JDBC самая высокая. Так зачем использовать фреймворк ORM? ?

Вспоминая, что я почувствовал, когда увидел код компании во время своей первой стажировки: "Боже мой, зачем столько кода?. Почему так много сумок, я все время их открываю».

生成结果

Если мы будем использовать исключительно JDBC, пока проект немного велик, в нашем проекте будет много кода. Самое главное, что много кодаповторениеиз. Если мы накопим столько дублирующегося кода в нашем проекте, то самая фатальная проблема — это «плохое обслуживание"

Итак, существует так много фреймворков ORM.Что касается того, какой фреймворк ORM использовать, я думаю, что нет правильного или неправильного.Вы можете использовать тот, который использует компания.

после всегоТехнология для бизнеса, Когда компания выбрала инфраструктуру ORM, в то время должно быть соображение. Когда дело действительно не может быть реализовано из-за использования структуры ORM, оно, естественно, будет оптимизировано.

На Zhihu есть много сравнений между «Mybatis и Hibernate/SpringData JPA».

В качестве ORM-фреймворка Mybatis очень популярен на рынке, пока есть основа JDBC, его легко научиться использовать.

Нет ББ, давайте начнем.

начиная

Шаги по использованию Mybatis примерно следующие:

Прежде всего, нам нужно настроить файл конфигурации Mybatis, Этот файл конфигурации в основном настроенСвязанные с базой данныхИнформация:

Затем мы пишем класс инструмента для получения sqlSession, который эквивалентен объекту Connection JDBC.

Затем напишите наш файл сопоставления, который на самом деле является отношением сопоставления между объектами и базами данных:

Используем на файле карты<insert>тег для вставки:

Затем вызовите sqlSession для реализации вставки:

Эффект следующий:

Глядя на это, кажется ли это немного сложным? На самом деле эти шаги вполне естественны:

  • Для работы с базой данных всегда будет конфигурация, связанная с базой данных. (Эта часть на самом деле пишется один раз, и вам не нужно писать ее снова после первого раза.)
  • Чтобы работать с базой данных, вы должны сообщить программе, как с ней работать, поэтому существует файл сопоставления (который может бытьXMLФайл сопоставления также может быть в виде аннотаций, в любом случае нам нужно открыть отверстие, чтобы сообщить программе, как выполнять)
  • Затем мы используем SQLSession для выполнения команды (позже мы можем заблокировать SQLSession непосредственно в этом блоке).

Итак, использование Mybatis на самом деле пишет映射文件/注解рассказать программе, как работать, и映射文件/注解На самом деле нам не сложно написать SQL.

Так что начать работу с Mybatis очень просто.

Подробная информация о Мибатисе

Динамический SQL

Динамический SQL фактически предоставляется нам с помощью Mybatis.if/foreachи другие теги, чтобы определить, имеют ли переданные параметры значения, если есть значения, мы будем склеивать параметры, если нет, мы не будем сплайсировать.

тайник

Понять, что означают кеш первого уровня и кеш второго уровня Mybatis.Можно использовать реализацию кеша Mybatis.ehcacheсправляться.

Если некоторый объем запроса данных велик и не очень сильно изменен, мы можем рассмотреть возможность использованияehcacheЧтобы кэшировать эту часть данных, уменьшите нагрузку на базу данных.

Картографический прокси

В первом примере мы увидели, что наше использование Mybatis не обязательно намного проще в разработке, потому что естьSQLSessionЭтот кусок все еще должен быть написан вручную.

Мы можем использовать прокси-сервер Mapper, чтобы заблокировать его.SQLSessionДля этого фрагмента кода вам нужно всего лишь написать接口+ одинMapper.xml(或者注解)Будет достаточно.

Как это заблокировано? Он опирается на динамические прокси. Почему можно полагаться на динамический прокси для достижения этой цели? Поскольку наш агент Mapper должен полагаться на «правила», с помощью «правил» мы можем упростить наш код посредством «отражения».

生成结果

Разобрать механизм с целью понять, как это работает

Через прокси-сервер Mapper мы уже можем реализовать «один интерфейс + один файл отображения Mapper (аннотацию)» для разработки нашей программы.

И поскольку CRUD неизбежен в работе, почти каждая добавленная таблица требует "самый простой"КРУД.

Так что программисты опять ленивые, даже"самый простой«CRUD не хочет быть написанным мной, поэтому есть реверс-инжиниринг.

Мы можем почти понять, что он делает, взглянув на конфигурацию реверс-инжиниринга:

Используя структуру таблицы, сгенерируйте наш собственный JavaBean и соответствующий интерфейс Mapper и файл сопоставления Mapper.

Mybatis-plus

Mybatis-plus — еще одно колесо, сделанное ленивыми программистами (собачья голова)

Я, честно говоря, ни разу не пользовался этим плагином, посмотрел на официальном сайте, а там примерно: простой CRUD, мне даже XML не нужен, а API напрямую помогает построить соответствующий CRUD-метод.

Заинтересованные студенты идут учиться, все это инструменты, которые могут повысить эффективность разработки.

mp.baomidou.com/

положить галантерейные товары

Это уже давно работает, почему ты все еще пишешь?MybatisНу по следующим причинам:

  • я паранабор текстаТе, кто преследует, если они рано обратят внимание на моих одноклассников, они могут обнаружить, что мой GitHub, навигация по статьямread.meбудет часто заменяться. настоящее времяGitHubНавигация мне не понравилась (слишком длинная), а ранние статьи, честно говоря, были не очень хороши в верстке, поэтому решил сделать новую волну.
  • Моя статья будет распространяться на нескольких платформах, но после того, как статья будет опубликована, ее никто не сможет прочитать, а кровать с картинками, скорее всего, зависнет из-за противоугонной цепочки платформы. И потому многие читатели спрашивали меня: "Можете ли вы преобразовать свою статью в PDF?? "
  • Я написал много статей на уровне серии, которые почти никогда не меняются, поэтому они идеально подходят для их публикации».Упорство".

По вышеуказанным причинам я решил собрать свой цикл статей в одинPDF/HTML/WORD/epubдокументация. Честно говоря, создание такого документаУ меня ушло много времени. предотвращатьпроституция, обратите внимание на мой публичный аккаунт, чтобы ответить "888" может быть получен.

Электронная книга Mybatis, заинтересованные студенты могут просмотреть волну. Всего "92" страницы

содержание документавсе вручную, если вы ничего не понимаете, вы можете напрямуюспросите меня(В официальном аккаунте есть мои контактные данные).

:coffee: Резюме различных точек знаний

Следующие статьи имеют соответствующиеоригинально и красивоPDF, в постоянном обновлении, вы можете прийти ко мне, чтобы призвать к обновлению ~

Проект с открытым исходным кодом, охватывающий все точки знаний о бэкэнде Java (уже 7 тысяч звезд):GitHub.com/Zhongf UC очень…

если ты хочешьв реальном времениЕсли вы обратите внимание на мои обновленные статьи и галантерейные товары, которыми я делюсь, поищите в WeChat.Java3y.

Содержимое PDF-документоввсе вручную, если вы ничего не понимаете, вы можете напрямуюспросите меня(В официальном аккаунте есть мои контактные данные).