English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

mybatis入门学习教程

MyBatis - это отличная платформа для persistence layer, поддерживающая обычные запросы SQL, хранимые процедуры и продвинутые mappings. MyBatis удаляет почти все JDBC-код и ручную настройку параметров, а также обертку результатов, и позволяет использовать простые XML или аннотации для конфигурации и базового mappings, а также mappings интерфейсов и Java POJO (Plain Old Java Objects, обычные Java-объекты) к записям базы данных.

1. Создайте проект, импортируйте jar-бандлы

   Создайте java-проект или web-проект, затем импортируйте jar-бандлы mybatis и зависимости, а также jar-бандлы базы данных, я использую базу данных Oracle10g

   файл jar mybatis-3.2.2.jar - ядро драйвера

   файл jar asm-3.3.1.jar
   файл jar cglib-2.2.2.jar
   файл jar commons-logging-1.1.1.jar
   файл jar javassist-3.17.1-GA.jar
   файл jar log4j-1.2.17.jar
   файл jar slf4j-api-1.7.5.jar
   файл jar slf4j-log4j12-1.7.5.jar
   файл jar classes12.jar для Oracle10g

2. Создайте основную конфигурацию подключения к базе данных sqlMapConfig.xml

    Создайте файл sqlMapConfig.xml в директории src

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <!-- настройка источника данных, среда-->
  <!-- можно настроить несколько сред, одну для тестирования, другую для запуска в production-->
  <environments default="test">
    <!-- тестовая среда -->
    <environment id="test">
      <!-- настройка транзакций : JDBC транзакции/MANAGED переданные контейнеру транзакции-->
      <transactionManager type="JDBC"></transactionManager>
      <!-- источник данных : POOLED кэширование/UNPOOLED некэширование/JNDI шифрование паролей, высокая безопасность-->
      <dataSource type="POOLED">
        <property name="driver" value="oracle.jdbc.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
        <property name="username" value="scott"/>
        <property name="password" value="luogg"/>
      </dataSource>
    </environment>
    <!-- серверная среда -->
    <environment id="deploy">
      <transactionManager type="JDBC"></transactionManager>
      <dataSource type="POOLED">
        <property name="driver" value="oracle.jdbc.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
        <property name="username" value="scott"/>
        <property name="password" value="luogg"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="com/luogg/mapper/PersonMapper.xml"/>
  </mappers>
</configuration>

3. Создайте папку test под src, в которой создайте файл TestMybatis.java

package test;
import com.luogg.domain.Person;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/**
 * Создано luogg 17 февраля 2017 года.
 */
public class TestMybatis {
  @Test
  public void init() throws IOException {
    /**
     * Тестирование подключения к базе данных
     * 1. Определите переменную типа String resource, указывающую на только что настроенный файл xml подключения к базе данных.
     * 2. Создайте поток ввода для чтения нашей конфигурации базы данных.
     * 3. Создание потока ввода для создания завода.
     * 4. После создания завода open завод
     */
    String resource = "sqlMapConfig.xml";
    InputStream is = Resources.getResourceAsStream(resource);
    SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
    SqlSession session = factory.openSession();
}

Теперь мы можем провести единичный тест, чтобы проверить, был ли создан сеанс, зеленый цвет означает успешное создание, затем мы создадим таблицу базы данных и напишем sql-запрос

4. Создайте базу данных и введите данные

CREATE TABLE person(
   ID NUMBER(2),
   NAME VARCHAR2(20),
   sex NUMBER(2),
   age NUMBER(3)
)
-- Введите данные, нажмите на кнопку блокировки внизу, затем нажмите на +
SELECT * FROM person FOR UPDATE

5. В папке src создайте папку com.luogg.domain и в этой папке создайте файл实体 Person.java

package com.luogg.domain;
/**
 * Создано luogg 17 февраля 2017 года.
 */
public class Person {
  private String name;
  private int sex;
  private int age;
  private int id;
  @Override
  public String toString() {
    return "Person{" +
        "name='" + name + '\'' +
        ", sex=" + sex +
        ", age=" + age +
        ", id=" + id +
        '}';
  }
  public int getId() {
    return id;
  }
  public void setId(int id) {
    this.id = id;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public int getSex() {
    return sex;
  }
  public void setSex(int sex) {
    this.sex = sex;
  }
  public int getAge() {
    return age;
  }
  public void setAge(int age) {
    this.age = age;
  }
}

6. Создание маппинга файла, соответствующего базе данных, в папке src создайте папку com.luogg.mapper и файл PersonMapper.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">
<!-- настройка пространства имен, пространство имен + .id является уникальным идентификатором sql-запроса-->
<mapper namespace="com.luogg.mapper.PersonMapper">
  <!-- запрос всех данных, параметры id, resultType результат, parameterType параметр-->
  <!-- внимание : если в sql-запросе нужно填写 коллекцию, например, для запроса всех данных, возвращается результат в виде набора Person, то параметр resultType пишется как путь + тип коллекции
    например: вернуть коллекцию Person, тогда填写 путь к Person Bean + Person-->
  <select id="find" resultType="com.luogg.domain.Person">
    SELECT * from person
  </select>
</mapper>

7. В основном конфигурационном файле sqlMapConfig.xml сделать карту, чтобы она распознавала наши файлы конфигураций с sql-запросами

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <!-- настройка источника данных, среда-->
  <!-- можно настроить несколько сред, одну для тестирования, другую для запуска в production-->
  <environments default="test">
    <!-- тестовая среда -->
    <environment id="test">
      <!-- настройка транзакций : JDBC транзакции/MANAGED переданные контейнеру транзакции-->
      <transactionManager type="JDBC"></transactionManager>
      <!-- источник данных : POOLED кэширование/UNPOOLED некэширование/JNDI шифрование паролей, высокая безопасность-->
      <dataSource type="POOLED">
        <property name="driver" value="oracle.jdbc.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
        <property name="username" value="scott"/>
        <property name="password" value="luogg"/>
      </dataSource>
    </environment>
    <!-- серверная среда -->
    <environment id="deploy">
      <transactionManager type="JDBC"></transactionManager>
      <dataSource type="POOLED">
        <property name="driver" value="oracle.jdbc.OracleDriver"/>
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
        <property name="username" value="scott"/>
        <property name="password" value="luogg"/>
      </dataSource>
    </environment>
  </environments>
  <!--Файл карты mappings-->
  <mappers>
    <mapper resource="com/luogg/mapper/PersonMapper.xml"/>
  </mappers>
</configuration>

8. Возвращаемся к классу теста TestMybatis.java, чтобы получить sql запросы из файла конфигурации и вернуть результат.

package test;
import com.luogg.domain.Person;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
/**
 * Создано luogg 17 февраля 2017 года.
 */
public class TestMybatis {
  @Test
  public void init() throws IOException {
    /**
     * Тестирование подключения к базе данных
     * 1. Определите переменную типа String resource, указывающую на только что настроенный файл xml подключения к базе данных.
     * 2. Создайте поток ввода для чтения нашей конфигурации базы данных.
     * 3. Создание потока ввода для создания завода.
     * 4. После создания завода open завод
     * 5. Через session доступ к sql запросам в конфигурационном файле
     */
    String resource = "sqlMapConfig.xml";
    InputStream is = Resources.getResourceAsStream(resource);
    SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
    SqlSession session = factory.openSession();
    //Как посетить sql запросы в PersonMapper.xml? Пространство имён + .id
    List<Person> list = session.selectList("com.luogg.mapper.PersonMapper.find");
    System.out.println(list.size());
    for(Person p : list){
      System.out.println(p);
    }
  }
}

Результат выполнения:

Указанные выше являются入门ными учебными руководствами по框架у mybatis, которые я介绍的给大家,��望对大家有所帮助. Если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарий, я отвечу вам вовремя. В этом также очень благодарен всем за поддержку веб-сайта呐喊 руководств!

Заявление: содержание этой статьи взято из интернета, авторские права принадлежат соответствующему владельцу, материалы предоставлены пользователями Интернета, веб-сайт не имеет права собственности, не undergone редактирование, и не несет ответственности за соответствующие юридические обязательства. Если вы обнаружите спорное содержимое, пожалуйста, отправьте письмо по адресу: notice#oldtoolbag.com (во время отправки письма, пожалуйста, замените # на @) для жалоб, и предоставьте соответствующие доказательства. Как только будет подтверждено, веб-сайт немедленно удалил спорное содержимое.

Рекомендуется для вас