Предисловие
В разработке Javaweb самыми классическими являются комбинация SSH Framework и комбинация Framework SSM. Теперь многие ИТ -компании готовы использовать SSM. Для H и M здесь, Hibernate и Mybatis, позвольте мне кратко поговорить об этом сегодня.
Играя топора в двери
Во время занятий я часто говорю студентам, что вы должны понимать любую технику:
Объяснение знаний
Hibernate и Mybatis являются очень популярными ORM (объектно-реляционным картированием, чтобы выразить это, технология, которая отображает базы данных). По сути, это все еще инкапсулирован JDBC, чтобы облегчить наше использование и упростить нашу разработку. Давайте сначала выясним несколько проблем:
Почему введение слоя настойчивости может решить эту проблему? Анализ: Механизм может быть введен в слое постоянства, который может быть использован в качестве перевода. Для различных баз данных внизу операторы HQL и операторы динамического запроса переводятся в различные операторы SQL. Это решает проблему, что нет необходимости изменять операторы SQL после замены базы данных, и количество кода будет значительно уменьшено.
Это так хорошо, так как же Hibernate и Mybatis реализовали вышеуказанное решение, то есть как их ORM реализован?
С зимний
В Hibernate этот механизм представляет собой файл конфигурации hibernate.cfg.xml (размещен в каталоге SRC)
<Hibernate-configuration> <session-factory> <property name = "connection.url"> jdbc: mysql: // localhost/hibernate </property> <name = "connection.username"> root </property> <property name = "appassword"> saber </property> <property name = "rydriver_class"> com.mys word. <name = "dialect"> org.hibernate.dialect.mysqlidialect </property> <!-оператор DDL автоматически создает таблицы-> <property name = "hbm2ddl.auto"> none </property> <property name = "show_sql"> true </property> name = "format_sql"> true </speciation> <! name = "hibernate.connection.provider_class"> org.hibernate.service.jdbc.connections.internal.c3p0connectionprovider </property> <!- Минимальное количество соединений JDBC в пуле соединений. Спезольными по умолчанию по умолчанию 1-> <name = "hibernate.c3p0.min_size"> 5 </property> <!-Максимальное количество соединений JDBC в пуле соединений. Уличие по умолчанию по умолчанию до 100-> <name = "hibernate.c3p0.max_size"> 20 </property> <!-Когда удалить холостое соединение за несколько секунд из пула соединений. По умолчанию 0, никогда не истекает-> <name = name = "hibernate.c3p0.timeout"> 300 </property> <!-Количество кэшированных предварительных операторов. Используется для повышения производительности. Уличие по умолчанию в 0, кэш не доступен-> <name = "hibernate.c3p0.max_statements"> 100 </свойство> <!-время простоя (в секундах), прежде чем подключение будет автоматически проверено. Уличие по умолчанию по умолчанию 0-> <name = "hibernate.c3p0.idle_test_period"> 3000 </property> <!-Запуск самостоятельно. Если вы получите сеанс через getCurrentSession (), вам нужно установить его следующим образом-> <name = "current_session_context_class"> Thread </property> <!-Два способа отображения постоянных классов-> <mapping/> <mapping resource = "com/serup/model/учитель.hbm.xml"/> </> session-factory> </hibernate-configuration> </hibernate-configuration>
После того, как проект изменил базу данных, то, что необходимо изменить, - это всего лишь несколько атрибутов в этом файле, и логический код бизнес -уровня не требуется изменять.
Рекомендуется использовать Hibernate для разработки:
** Объект домена ---> отображение ---> База данных, другими словами, объекты и таблицы должны иметь отображение, и это отображение имеет два метода конфигурации в Hibernate **
1. Метод XML (name.hbm.xml)
Установить взаимосвязь отображения между таблицей и классом через файл HBM
2. Метод аннотации
Позже, с обратной техникой, это стало намного проще, и вы можете напрямую генерировать соответствующий файл через таблицу базы данных.
Mybatis
В Mybatis этот механизм также опирается на файл конфигурации mybatis-config.xml (размещен в каталоге SRC)
<FONIVERUTION> <Properties resource = "sqlSerVerinfo.properties"/> <!-Файл конфигурации базы данных-> <Typealiases> <name = "com.demo.domain"/> <!-Сканированные пакеты с типовым псевдоним для сканирования файла разделяют-> </typealiases> <среда Default = "Development"> <> «Застройка»> <> «Застройка». type = "jdbc"/> <dataSource type = "booled"> <name = "Driver" value = "$ {Driver}"/> <name = "url" value = "$ {url}"/> <name = "username" value = "$ {username}"/> name = "password" value = "$ {password}"/> <//> </> <Proport = "value =" $ {Password} "/> </> </> </> </> <proportive =" </Environments> <mappers> <!-Файлы отображения для выполнения конкретных операций CRUD-> <mapper resource = "com/demo/domain/usermapper.xml"/> </mappers> </configuration> Таким образом, каждый раз, когда вы меняете базу данных, вам нужно только изменить файл конфигурации.
Использование mybatis для разработки рекомендует это:
** Создайте базу данных и создайте различные таблицы ---> Обратная инженерия автоматически генерирует код, необходимый для выполнения Mybatis (mapper.java, mapper.xml, po ..) ---> Напишите уровень управления и уровень обслуживания в соответствии с бизнес-логикой. **
Различия
В Интернете есть различные сравнения, и я говорю только о некоторых разных моментах, я думаю
1. Hibernate имеет объектно-ориентированный язык запросов под названием HQL. Это очень мощно. Это позволяет обезьянам, которые не знают операторов SQL, добавлять, удалять, изменять и искать в базе данных, но это также его слабость. Заявления SQL не могут быть оптимизированы.
2. Mybatis требует конфигурации оператора SQL, что означает, что для начала работы базы данных все еще требуется базовые знания в базе данных. Более того, начинающие, должно быть, столкнулись с множеством ловушек в картировании результатов.
3. Я никогда не делал особенно большого проекта. Если нет особых требований к производительности, Hibernate все еще проще реализовать функции.
Системная настройка
Решение настройки Hibernate
Mybatis Tuing Solution
Суммировать
Вышеуказанное - все содержание этой статьи. Я надеюсь, что содержание этой статьи имеет определенную справочную ценность для каждого обучения или работы. Если у вас есть какие -либо вопросы, вы можете оставить сообщение для общения. Спасибо за поддержку Wulin.com.