Написано о mybatis

1.mybatis в # {} и $ {} разница?

Ответ :

Определение: # {} прекомпилируется.

Действие: MyBatis процесс # {} в то время, SQL заменит его ? , Затем вызовите PreparedStatement в набор назначение метода, также может предотвратить SQL инъекции.

Примечания: SQL инъекция инъекция атака может выполнить вредоносный SQL заявление. По SQL в коде запросов к базе данных, так что злоумышленник может контролировать веб - сервисы базы данных за серверным приложением , может быть несколько операций по базе данных. Такие , как добавление, изменение и удаление данных в базе данных.

Определения : $ {} строка подстановки.

Действие: MyBatis процесс $ {} в то время, SQL заменит его со значением переменной.

2.mybatis Есть несколько способов разбиения на страницы?

: Есть четыре, а именно массив пейджинга, SQL пейджинг, пейджинговые перехватчики, RowBounds страницы.

3.mybatis разница между физическими и логическими страницами подкачки?

Ответ :

Определение: физическая страница зависит от физического лица, что объект является базой данных, такими как MySQL база данных обеспечивают предельные ключевые слова, писать о программистах ограничить ключевые слова запроса, база данных будут возвращать страничный результаты.

Определения : логическая страница код , написанный программистом, а не результаты , вызов которого возвращаемые база данных, но все данные и выгружаемые данные , полученные с помощью кода программиста. Общие одноразовые операции запроса хранить все данные списка набора, и получения данных диапазона , указанного индекса,

 

Сравнение между этими двумя:

  1. Бремя базы данных: доступ к базе данных, поскольку каждый физический запрос страницы, и логическая страница только запросу в базе данных один раз, поэтому большая нагрузка на базе данных, вызванная физической страницей.
  2. Сервер загрузки : логическая страница разовый читать данные в памяти, занимая больший объем памяти, физические страницы чтения за одно посещение только часть данных , базы данных, занимают меньше места в памяти, поэтому логической страницы большей нагрузки на сервер ,
  3. В режиме реальное время: логический данные страницы считывается в память в одно время, когда изменения данных, база данных не будет отражены в реальное время до последнего состояния операции, разницы в реальное время, необходимо получить доступ к базе данных для физической страницы каждый раз, когда он нуждается в данных при изменении данных, последнее состояние базы данных для отражения операции в режиме реального времени, так что производительность в режиме реального времени.
  4. Применение: логическая страница для небольшого количества данных и случае, когда данные стабильные, объем данных, применимых к физической странице часто обновляются случаи.

 

Примечание: MyBatis из RowBounds вкладки с помощью логической страницы, то смещение и ограничения вырезать вкладку запись и возвращает результаты. Но это вызовет переполнение памяти при обработке больших объемов данных.

 

4. ОПИСАНИЕ mybatis кэш и вторичный кэш?

Ответ: Кэш: он основан на PerpetualCache / [pə petʃuəl] [kæʃ] из HashMap локального запоминающего устройства, его объем хранится в сессии . Когда вровень Session или близко после этой сессии все из кэша будут удалены. Уровень кэш включен по умолчанию.

Кэш и механизм кэш - памяти, основаны PerpetualCache на HashMap локальное запоминающее устройство, в котором сфера отличается от сохраненного Mapper ( в пространстве имен ), и может быть пользовательский источник хранения. Вторичный кэш не открывается по умолчанию, если вы хотите , чтобы открыть кэш второго уровня, требуется два класса атрибута кэша для достижения сериализуемого / [ sɪərɪəlaɪzəbl] последовательных интерфейсов.

 

Для механизма обновления для кэширования данных: Когда область применения дополнений и удаления в кэш по умолчанию всех запросы будут удалены в рамках.

5. На спящем режиме и mybatis разницы?

Ответ: Hibernate является популярным ORM ( Object Relational Mapping) структура, структура базы данных для более полного пакета.

Mybatis также популярны ORM рамки, основное внимание POJO и SQL отображение между ними. POJO представители простых случайных ява объектов, в традиционном смысле чистого Java объектов, самый основной Java боб только атрибут с помощью атрибута GET и набора методов, могут быть преобразованы ро, DTO, Vo.

1. Самая большая разница между этими двумя: для простых запросов, спящий режим и mybatis имеют соответствующего генератора кода может генерировать, по существу , дао код уровня.

针对高级查询:mybatis需要手动去写SQL语句,以及ResultMap;而hibernate有良好的映射机制,开发者不需要关心sql生成和映射结果,可以更加关注业务流程。

2.开发难度对比:hibernate的开发难度大于mybatis,因为hibernate比较庞大复杂,而且学习周期比较长。而mybatis就比较简单,且它比较依赖于sql的书写,可以让开发者更加熟悉。

举一个形象的比喻:

Mybatis:机械工具,使用方便,拿来就用,但是工作还是要自己来做,不过工具是活的,怎么用由自己决定。

Hibernate:智能机器人,但研发(学习,熟练度)它的成本高,工作都可以交给它,但仅限于它能作的事。

 

6.Mybatis分页插件的实现原理是什么?

答:分页插件的基本原理是使用mybatis提供的插件接口,实现自定义插件,在插件的拦截方法内拦截待执行的sql,然后重写sql,根据dialect方法,添加相应的物理分页语句和物理分页参数。

рекомендация

отwww.cnblogs.com/su-chu-zhi-151/p/11874457.html