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