Mybatis - это структура настойчивости Java, которая связывает объекты с сохраненными процедурами или операторами SQL через дескрипторы XML или аннотации.
Mybatis - это бесплатное программное обеспечение, распространяемое по Apache License 2.0, и является филиалом Ibatis 3.0. Его команда по техническому обслуживанию также включает участников Ibatis Startup.
В отличие от других объектно-реляционных каркасных структур, Mybatis не связывает Java-объекты с таблицами баз данных, а скорее методами Java с операторами SQL. Mybatis позволяет пользователям в полной мере воспользоваться различными функциями базы данных, таких как хранимые процедуры, представления, различные сложные запросы и запатентованные функции базы данных. Если вы хотите работать в устаревших базах данных, нерегулярных базах данных или имеете полный контроль над выполнением SQL, Mybatis - хороший выбор.
По сравнению с JDBC Mybatis упрощает соответствующий код: операторы SQL могут быть выполнены в одной строке кода. Mybatis предоставляет двигатель отображения, который декларативно отображает результаты выполнения операторов SQL с деревом объектов. Операторы SQL могут быть сгенерированы динамически с использованием встроенного языка экспрессии, подобного XML, или с использованием плагинов, интегрированных по скорости Apache.
Mybatis интегрируется с Spring Framework и Google Guice, что экономит разработчиков от проблем зависимостей.
Mybatis поддерживает декларативное кэширование данных. Когда оператор SQL помечен как «кэшируемый», все данные, полученные из базы данных, когда он впервые выполняется, будут сохранены в кэше. Когда это утверждение будет выполнено в будущем, результат будет прочитан из кэша вместо того, чтобы снова нажать базу данных. Mybatis предоставляет реализацию кэша на основе Java HashMap по умолчанию, а также разъент по умолчанию для соединений с Oscache, Ehcache, Hazelcast и Memcached. Mybatis также предоставляет API для других реализаций кэша.
Важные моменты
После обучения в течение этого периода основным процессом для Mybatis не может быть следующими шагами
1. Получите SessionFactory из файла конфигурации XML, а затем генерируйте соответствующий сеанс из SessionFactory.
2. Используйте объект сеанса для завершения соответствующих операций CRUD (добавление, удаление, модификация и запрос) и соответствующее управление транзакциями на бизнес -данных.
3. Закройте соответствующий сеанс после использования, чтобы избежать чрезмерного потребления ресурсов
4. Используйте соответствующий файл Mapper XML для настройки соответствующей операции карты между Javabean Business Entity и таблицей баз данных.
Предварительные приготовления:
1. Среда развития Eclipse Javaee IDE, JDK 1.6, база данных MySQL 5.5
2. Загрузите соответствующий пакет JAR для дальнейшего использования
Mybatis-3.2.3.3.zip После декомпрессии, выберите Mybatis-3.2.3.3.jar, => Адрес загрузки: http://code.google.com/p/mybatis/ (пакет основного пакета mybatis)
Mybatis-Generator-core-1.3.1.jar => Адрес загрузки: http://code.google.com/p/mybatis/wiki/generator (MyBatis автоматически генерирует пакет файлов конфигурации)
MySQL-Connector-Java-5.1.26bin.jar => Адрес загрузки: http://dev.mysql.com/downloads/connector/j/ (пакет драйверов MySQL JDBC)
Строительные этапы
Затем вы можете создать проект Java Project под названием MyBatisDemo в рамках Eclipse и создать соответствующую структуру пакетов и структуру папок, как показано на рисунке ниже, где конфигурация и Mapper являются папками соответственно.
Соответствующая программа Demo Runner и Javabean-объекты хранятся в пакете David.mybatis.demo и пакета David.mybatis.model, а сторонние пакеты JAR, только что загруженные, хранятся в папке LIB.
После создания следующего каталога мы можем добавить соответствующий пакет JAR, как показано на рисунке ниже
После завершения выполните следующий SQL, чтобы установить структуру таблицы, необходимую для демонстрации, включая 3 таблицы, посетители (таблица посетителей), веб -сайт (таблица веб -сайта) и канал (таблица каналов)
/*Создать посетителя*/Создать таблицу посетителя (id int (11) не null auto_increment, имя varchar (1000) не null, электронная почта varch Посетитель (ID), статус int not null default 1, createtime dateTime)/*Создание таблицы каналов*/Создание табличного канала (id int int nul null первичный ключ Auto_increment, имя varchar (1000) не null, веб -сайт int ссылки (id), Status int nut null defall 1, createtime dateTime)
После того, как все это сделано, мы начнем это делать ~
Как упоминалось в начале, все конфигурации Mybatis происходят из файла конфигурации XML. Нам нужно создать новый файл конфигурации с именем mybatis_demo_config.xml в папке конфигурации. Эта вещь - одна из основных операций, которые мы должны работать позже.
При настройке этого файла вы должны обратить внимание на элементы в узле <configuration>, которые имеют иерархические требования заказа и не могут быть изменены по желанию. В противном случае, при загрузке файла конфигурации XML произойдет исключение, что приведет к неудачным последующим операциям.
Для конкретного описания узлов вы можете проверить http://mybatis.github.io/mybatis-3/zh/configuration.html#. Здесь мы говорим только о более часто используемых узлах, типах, средах, картофелях.
1. Typealiases => Узел псевдонима. Вы можете установить свойства этого узла, чтобы этот псевдоним использовался вместо полностью квалифицированного имени в файле конфигурации.
Например, <typealias type = "david.mybatis.model.visitor" Alias = "Посетитель" />
2. Environments => Узел среды, настройка информации, связанной с подключением данных
3. Mappers => Настройка операторов отображения SQL.
Самая простая конфигурация заключается в следующем:
<? xml version = "1.0" Encoding = "UTF-8"?> <! Конфигурация doctype public "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <cistinti Type = "david.mybatis.model.visitor" Alias = "Visitor" /> < /typealiases> <среда Default = "Развитие"> <среда идентификатор = "Развитие"> <TransactionManager Type = "jdbc"> < /transactionManager> <dataSource type = "Booled"> <properation = "Driver" value = "com.mysql. ?useUnicode=true&characterEncoding=utf8 To support Chinese insertion--> <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis_db?useUnicode=true&characterEncoding=utf8" /> <property name="username" value="root" /> <property name="password" value = "123456"/> </dataSource> </envenerition> </ervinements> <mappers> <mapper resource = "mapper/vitiveormapper.xml"/> </mappers> </configuration>
Создайте новый класс под названием Mybatisutils в пакете David.mybatis.demo, в котором хранятся методы получения SQLSession и Close SqlSession, которые извлечены для облегчения многократного повторного использования.
Пакет david.mybatis.demo; импортировать java.io.inputstream; import org.apache.ibatis.io.resources; import org.apache.ibatis.session.sqlsession; импорт org.apache.ibatis.session.sqlsessionFactor david.mybatis.model.crud_enum; открытый класс mybatisutils {private static final String config_path = "config/mybatis_demo_config.xml"; /** Получить ссылку на доступ к базе данных*/ public static sqlSession getSqlSession () {sqlSession session = null; try {inputstream stream = resources.getResourceasStream (config_path); // Соответствующая среда базы данных может быть прочитана в соответствии с соответствующей средой, настроенной // sqlSessionFactory Factory = new SQLSessionFactoryBuilder (). Build (// Stream, «Разработка»); SQLSessionFactory Factory = new SQLSessionFactoryBuilder () .Build (Stream); session = factory.opensession (); } catch (Exception e) {// todo: обрабатывать исключение explyStstackTrace (); } return Session; } / * * Получить ссылку на доступ к базе данных * / public static void закрыть (sqlSession Session) {session.close (); } /** Сообщение записи операции возврата* / public static void showmessages (crud_enum type, int count) {switch (type) {case add: system.out.println ("добавлен" + count + "record."); перерыв; case delete: system.out.println ("удалить" + count + "records."); перерыв; Case Update: System.out.println («Обновление» + count + "records."); перерыв; Case Query: System.out.println ("Соответствует" + count + "records."); перерыв; Список случаев: System.out.println («Тотальный» + count + «Записи»); перерыв; по умолчанию: перерыв; }}}Создайте новый класс под названием «Посетитель» в пакете David.mybatis.model, чтобы использовать его в качестве соответствующего или отображения.
пакет David.mybatis.model; import java.text.simpledateformat; импорт java.util.date; посетители открытого класса {private int id; Приватное название строки; Приватная строковая электронная почта; частный статус Int; частная дата создания времени; Public Vitor () {// TODO Auto Generated Constructor Stub CreateTime = new Date (); } public Visitor (string name, string email) {this.name = name; this.email = электронная почта; this.status = 1; this.createtime = new Date (); } public int getId () {return id; } public void setName (string name) {this.name = name; } public String getName () {return name; } public void setEmail (string email) {this.email = email; } public String getEmail () {return Email; } public date getCreatetime () {return createTime; } @Override public String toString () {// TODO Автогенерированный метод заглушка string string.format ("{id: %d, имя: %s, creatememe: %s}", id, имя, new simpledateformat ("yyyy-mm-dd hh: mm: ss"). }}Создайте новый visitormapper.xml под пакетом David.mybatis.demo, чтобы отобразить соответствующий оператор SQL.
Здесь вы должны отметить, что namespace => david.mybatis.demo.ivisitoroperation должен быть связан с фактическим именем файла ниже соответствующего пакета. В противном случае соответствующий файл отображения не может быть успешно загружен.
<mapper namespace = "david.mybatis.demo.ivisitoroperation"> <select id = "basicquery" parametertype = "int" outdettype = "visitor"> select * from vitor where =#{id} и status> 0 порядок по id </selet> </mapper> Далее запустите следующую программу
public static void testbasicquery (int id) {sqlsession session = mybatisutils.getsqlsession (); try {посетитель посетителя = (посетитель) session.selectone ("david.mybatis.demo.ivisitoroperation.basicquery", id); Mybatisutils.closesession (сессия); System.out.println (посетитель); } catch (Exception e) {// todo: обрабатывать исключение}} Самый простой результат выполнения вышел
Это «Хелдоуорд» серии Mybatis ~