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

mybatis框架入门学习教程

MyBatis è un eccellente framework di persistenza che supporta le query SQL normali, i procedimenti memorizzati e la mappatura avanzata. MyBatis elimina quasi tutto il codice JDBC e la configurazione manuale dei parametri, nonché l'encapsulation della ricerca dei risultati. MyBatis può utilizzare XML semplice o annotazioni per la configurazione e la mappatura originale, mappando gli interfacce e gli oggetti POJO (Plain Old Java Objects, oggetti Java comuni) ai record del database.

1. Crea il progetto, importa i jar

   Crea un progetto java o web, poi importa i pacchetti jar di MyBatis e le dipendenze, oltre ai pacchetti jar del database, uso il database Oracle10g

   mybatis-3.2.2.jar il driver di base

   asm-3.3.1.jar
   cglib-2.2.2.jar
   commons-logging-1.1.1.jar
   javassist-3.17.1-GA.jar
   log4j-1.2.17.jar
   slf4j-api-1.7.5.jar
   slf4j-log4j12-1.7.5.jar
   classes12.jar il pacchetto jar di Oracle10g

2. Crea il file di configurazione principale per la connessione al database sqlMapConfig.xml

    Crea il file sqlMapConfig.xml sotto la directory 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>
  <!-- configurazione fonte dati, ambiente-->
  <!-- è possibile configurare più ambienti, uno per il test e uno per il lancio in produzione-->
  <environments default="test">
    <!-- ambiente di test -->
    <environment id="test">
      <!-- configurazione transazione : transazione JDBC/GESTITO affidata al container-->
      <transactionManager type="JDBC"></transactionManager>
      <!-- fonte dati : POOLED poolato/UNPOOLED non poolato/JNDI crittografia delle password, sicurezza alta-->
      <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>
    <!-- ambiente server -->
    <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. Crea una cartella test sotto src, e crea il file TestMybatis.java nella cartella test

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;
/**
 * Creato da luogg il 17/02/2017.
 */
public class TestMybatis {
  @Test
  public void init() throws IOException {
    /**
     * Testare la connessione al database
     * 1. Definire una variabile di tipo String resource che punti al file xml di connessione al database configurato
     * 2. Creare un flusso di input per leggere il file di configurazione del database
     * 3. Creare un flusso di input per creare la fabbrica.
     * 4. Con la presenza della fabbrica, open la fabbrica
     */
    String resource = "sqlMapConfig.xml";
    InputStream is = Resources.getResourceAsStream(resource);
    SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
    SqlSession session = factory.openSession();
}

Ora possiamo eseguire i test unitari, per vedere se la sessione è stata creata, verde indica che è stato creato con successo, quindi procediamo a creare la tabella del database e scrivere le istruzioni SQL

4. Creare il database e inserire dati

CREATE TABLE person(
   ID NUMBER(2),
   NAME VARCHAR2(20),
   sex NUMBER(2),
   age NUMBER(3)
)
-- Inserire dati, fare clic sul pulsante di bloccaggio in basso e poi su +
SELECT * FROM person FOR UPDATE

5. Creare una cartella com.luogg.domain in src e creare un file Person.java come bean di entità

package com.luogg.domain;
/**
 * Creato da luogg il 17/02/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. Creare il file di mappatura corrispondente al database, creare un file XML PersonMapper.xml nella cartella com.luogg.mapper di src

<?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">
<!-- Configurazione namespace, namespace+ .id è un identificatore univoco per le espressioni sql-->
<mapper namespace="com.luogg.mapper.PersonMapper">
  <!-- Consultare tutti i dati, parametri con id, resultType insieme di risultati, parameterType parametri-->
  <!-- Attenzione: se nella query sql ci sono campi da compilare, come ad esempio consultare tutti i dati, restituire un insieme di risultati Person, quindi scrivere direttamente il percorso+tipo dell'insieme nel parametro resultType-->
    Ad esempio: restituire una raccolta di Person, quindi scrivere il percorso del Bean Person+Person->
  <select id="find" resultType="com.luogg.domain.Person">
    SELECT * from person
  </select>
</mapper>

7. In file di configurazione di base sqlMapConfig.xml fare una mappatura, in modo che riconosca il nostro file di configurazione con sql scritto

<?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>
  <!-- configurazione fonte dati, ambiente-->
  <!-- è possibile configurare più ambienti, uno per il test e uno per il lancio in produzione-->
  <environments default="test">
    <!-- ambiente di test -->
    <environment id="test">
      <!-- configurazione transazione : transazione JDBC/GESTITO affidata al container-->
      <transactionManager type="JDBC"></transactionManager>
      <!-- fonte dati : POOLED poolato/UNPOOLED non poolato/JNDI crittografia delle password, sicurezza alta-->
      <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>
    <!-- ambiente server -->
    <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>
  <!--File di mappatura mapper-->
  <mappers>
    <mapper resource="com/luogg/mapper/PersonMapper.xml"/>
  </mappers>
</configuration>

8. Tornare alla classe di test TestMybatis.java, accedere alla stringa SQL configurata nel file di configurazione e restituire il set di risultati

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;
/**
 * Creato da luogg il 17/02/2017.
 */
public class TestMybatis {
  @Test
  public void init() throws IOException {
    /**
     * Testare la connessione al database
     * 1. Definire una variabile di tipo String resource che punti al file xml di connessione al database configurato
     * 2. Creare un flusso di input per leggere il file di configurazione del database
     * 3. Creare un flusso di input per creare la fabbrica.
     * 4. Con la presenza della fabbrica, open la fabbrica
     * 5. Accedere alle query sql configurate nel file di configurazione tramite session: *
     */
    String resource = "sqlMapConfig.xml";
    InputStream is = Resources.getResourceAsStream(resource);
    SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(is);
    SqlSession session = factory.openSession();
    //Come accedere alla query sql nel PersonMapper.xml? Spazio dei nomi + .id
    List<Person> list = session.selectList("com.luogg.mapper.PersonMapper.find");
    System.out.println(list.size());
    for(Person p : list){
      System.out.println(p);
    }
  }
}

Risultato dell'esecuzione:

Come ha spiegato l'editor, questo è un tutorial di introduzione alla framework mybatis, speriamo che sia utile a tutti. Se avete qualsiasi domanda, lasciate un commento e l'editor risponderà prontamente. In questo senso, ringraziamo anche tutti i sostenitori del sito tutorial di urla!

Dichiarazione: il contenuto di questo articolo è stato tratto da Internet, il copyright spetta ai rispettivi autori, il contenuto è stato contribuito e caricato autonomamente dagli utenti di Internet, questo sito non detiene i diritti di proprietà, non è stato editato manualmente e non assume alcuna responsabilità legale. Se trovi contenuti sospetti di violazione del copyright, ti preghiamo di inviare una e-mail a: notice#oldtoolbag.com (al momento dell'invio dell'e-mail, sostituisci # con @) per segnalare il problema e fornire prove pertinenti. Una volta verificata, questo sito rimuoverà immediatamente il contenuto sospetto di violazione del copyright.