Предшественником Mybatis был Ибатис, который изначально был проектом Apache с открытым исходным кодом. В 2010 году этот проект был перенесен от Apache Software Foundation в Google Code и был переименован в Mybatis. Mybatis - отличная структура слоя настойчивости, которая поддерживает простые запросы SQL, сохраненные процедуры и расширенное картирование. Mybatis устраняет ручную настройку почти всех кодов и параметров JDBC и поиск наборов результатов. Mybatis использует простые XML или аннотации для конфигурации и оригинального отображения, отображения интерфейсов и Pojos Java (спланируйте старые объекты Java, обычные объекты Java) в записи в базе данных.
Функциональная архитектура Mybatis разделена на три слоя (картина заимствована из энциклопедии Baidu):
1) Слой интерфейса API: обеспечивает интерфейсные API для внешнего использования, с помощью которого разработчики манипулируют базами данных. Как только уровень интерфейса получит запрос вызова, он вызовет уровень обработки данных, чтобы завершить конкретную обработку данных.
2) Уровень обработки данных: Отвечает за конкретный поиск SQL, анализ SQL, выполнение SQL выполнения и сопоставления результатов, и т. Д. Его основная цель - выполнить операцию базы данных на основе запроса вызова.
3) Базовый уровень поддержки: Отвечает за самую основную функциональную поддержку, включая управление соединением, управление транзакциями, загрузку конфигурации и обработку кэша. Это все общие вещи, извлекая их как самые основные компоненты. Предоставляет самую основную поддержку верхнего уровня уровня обработки данных.
Вот простой Mybatis с использованием демонстрации.
Общая структура
Зависимость точки
Необходимо ссылаться на два пакета JAR, один-Mybatis, а другой-MySQL-Connector-Java. Если это проект Maven, добавьте зависимости в POM следующим образом.
<depervice> <groupid> org.mybatis </GroupId> <ArtifactId> mybatis </artifactid> <serse> 3.2.3 </version> </dependency> <dehyedency> <groupid> mysql </Groupid> <ratifactid> mysql-connector-java </artifactid> <seriate> 5.1.26 </restainty> </resture> <//resture> <//resture> <//resture> <//resture> <//resture> </resture> </artifactid> <seriate>.
Подготовка данных
Создайте данные точек в MySQL для тестирования:
Создать базу данных mybatis_test; создать пользователь таблицы (возрастное целое число не null, имя varchar (64) не null default ''); вставить значения пользователей (18, 'Zhanjindong'); вставить значения пользователей (20, 'Zhangsan');
Файл конфигурации
Требуются два типа файлов конфигурации. Одним из них является файл конфигурации mybatis mybatis-config.xml. В примере это очень простая конфигурация. Есть много инструкций для подробной конфигурации в Интернете.
<? xml version = "1.0" Encoding = "UTF-8"?> <! Конфигурация doctype public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <perifulation> <preting> <! name="cacheEnabled" value="false" /> <setting name="useGeneratedKeys" value="true" /> <setting name="defaultExecutorType" value="REUSE" /> </settings> <typeAliases> <typeAlias alias="User" type="test.mybatis.User"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type = "jdbc"/> <dataSource type = "объединение"> <name = "Driver" value = "com.mysql.jdbc.driver"/> <name = "url" value = "jdbc: mysql: //192.168.71.38: 3306/mybatis_test"/> namermame namemer hamer namerame "/> namermame namerame"/> ". value = "root"/> <name = "password" value = "123456"/> </dataSource> </environment> </erviness> <mappers> <mapper resource = "mappers/usermapper.xml"/> </mappers> </configuration>
Другим типом является файл отображения интерфейса интерфейса доступа к данным: в примере это usermapper.xml. Этот файл можно найти с помощью SRC/Main/Resource или подкатализатора Mybatis. Это указывается ресурсом Mappers/Node в Mybatis-config.xml.
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> mapper nightspace =" test.mybatis.mybatis.mybatis.mybatis. Пространство имен должно быть путем интерфейса usermapper "-> <INSERT ID =" INSERTUSER "PARAMETERTYPE =" Пользователь "> вставить в значения пользователя (имя, возраст) (#{name},#{age}) <!-Здесь не может быть добавлено в конце SQL, иначе, как и ID, идентификатор, иначе, так и то же, что идентификатор" ORA-00911 ", идентификация, и. Имя метода интерфейса в интерфейсе usermapper-> <select id = "getUser" resultype = "user" parametertype = "java.lang.string"> select * из пользователя, где name =#{name} </selet> </mapper> Соответствующий файл сопоставления - это интерфейс Usermapper в разделе Test.mybatis, который только определяет интерфейс для доступа к таблице данных:
Package Test.mybatis; публичный интерфейс usermapper {public void insertuser (пользователь пользователя); общедоступный пользователь getUser (string name);} Нужен pojo: user.java
Package test.mybatis; User User user {private String name; частный целый возраст; public String getName () {return name; } public void setName (string name) {this.name = name; } public integer getage () {return Age; } public void setage (целый возраст) {this.age = age; } public User (String name, Integer Age) {super (); this.name = name; this.age = возраст; } public user () {super (); }} тест
В операции базы данных Mybatis используется класс под названием SQLSession. Этот класс генерируется через SQLSessionFactory. Обычно рекомендуется поддерживать SQLSessionFactory во всем мире.
Testmybatis.java
Пакет Test.mybatis; импорт java.io.ioexception; import java.io.reader; import org.apache.ibatis.io.resources; импорт org.apache.ibatis.session.sqlsessionFactor SQLSessionFactory; static {string resource = "mybatis-config.xml"; Reader Reader = null; try {Reader = resources.getResourCeasRearder (ресурс); } catch (ioException e) {System.out.println (e.getMessage ()); } sqlSessionFactory = new sqlSessionFactoryBuilder (). Build (Reader); } public static sqlSessionFactory getSqlSessionFactory () {return sqlSessionFactory; }}Тестовый код заключается в следующем:
Testmybatis.java
Package Test.mybatis; Import org.apache.ibatis.session.sqlsession; импорт org.apache.ibatis.session.sqlsessionFactory; открытый класс TestMyBatis {static sqlSessionFactory sqlSessionFactory = null; static {sqlSessionFactory = mybatisutil.getSqlSessionFactory (); } public static void main (string [] args) {testAdd (); getUser (); } public static void testAdd () {sqlSession sqlSession = sqlSessionFactory.opensession (); try {usermapper usermapper = sqlsession.getmapper (usermapper.class); Пользователь пользователя = новый пользователь ("LISI", New Integer (25)); usermapper.insertuser (пользователь); sqlsession.commit (); // Вы должны отправить здесь, иначе данные не будут вводить базу данных}, наконец, {sqlsession.close (); }} public static void getUser () {sqlSession sqlSession = sqlSessionFactory.opensession (); try {usermapper usermapper = sqlsession.getmapper (usermapper.class); Пользователь пользователь = usermapper.getuser ("Zhangsan"); System.out.println ("name:" + user.getName () + "| AGE:" + user.getage ()); } наконец {sqlSession.Close (); }}} Что следует отметить
1. Mybatis будет использовать log4j для записи журналов, но включение режима отладки, похоже, оказывает очень сильное влияние на производительность.
2. Кэш запроса Mybatis оказывает очень большое влияние на производительность, и разрыв между включением и не включенным очень большой.
ПРИМЕЧАНИЕ. Строка кэша должна быть добавлена в файл Mapper, в противном случае она не вступит в силу.
Скачать пример кода: скачать код
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.