Tutorial Pembelajaran Pendahuluan Articlemybatis sebelumnya - di awal mybatis, kami berbicara tentang cara menggunakan mybatis untuk menanyakan data di tabel pengguna, yang merupakan pengantar awal untuk mybatis. Hari ini, kami akan menjelaskan cara menggunakan mybatis untuk melakukan operasi crud di tabel pengguna. Sebelum Anda pergi ke topik, saya akan menambahkan beberapa pengetahuan dasar tentang mybatis dan crud.
Apa itu mybatis?
Mybatis adalah kerangka kerja lapisan kegigihan yang sangat baik yang mendukung pertanyaan SQL biasa, prosedur tersimpan dan pemetaan lanjutan. Mybatis menghilangkan pengaturan manual dari hampir semua kode dan parameter JDBC dan mencari set hasil. Mybatis dapat menggunakan XML sederhana atau anotasi untuk konfigurasi dan pemetaan asli untuk memetakan antarmuka dan pojos Java (objek java tua biasa) ke dalam catatan dalam database.
MyBatis Unduh: https://github.com/mybatis/mybatis-3/releases
Berarti kasar
CRUD mengacu pada singkatan dari huruf pertama dari beberapa kata saat melakukan pemrosesan perhitungan. Ini terutama digunakan untuk menggambarkan fungsi operasional dasar dari database atau lapisan persistensi dalam sistem perangkat lunak.
Pergi ke titik, lingkungan pengujian yang digunakan dalam artikel ini adalah lingkungan pengujian dalam artikel sebelumnya.
1. Gunakan mybatis untuk melakukan operasi CRUD pada tabel - implementasi berbasis XML
1. Tentukan file XML Pemetaan SQL
Isi file usermapper.xml adalah sebagai berikut:
<? Xml Version = "." encoding = "utf-"?> <! Doctype mapper public "-// mybatis.org//dtd mapper .//en" "http://mybatis.org/dtd/mybatis-mapper.dtd"> < Nilai namespace secara konvensional diatur ke nama paket + nama file peta SQL, sehingga nilai namespace dapat dijamin unik. Misalnya, namespace = "me.gacl.mapping.usermapper" adalah me.gacl.mapping (nama paket) + usermapper (usermapper.xml sufiks penghapusan file)-> <mapper namespace = "me.gacl.mapping.usermapper"> <!-tulis pernyataan SQL yang harus ditetapkan, tag, tag. Atribut ParameterType tidak dapat digunakan kembali untuk menunjukkan jenis parameter yang digunakan dalam kueri. Atribut HasilType menunjukkan jenis set hasil yang dikembalikan oleh query resultType = "me.gacl.domain.user" berarti merangkum hasil kueri menjadi objek kelas pengguna kembali ke kelas pengguna, yang merupakan kelas entitas yang sesuai dengan tabel pengguna-> <!-Dapatkan objek pengguna berdasarkan kueri ID-> <Pilih ID = "GetUser" resultType = "me.gacl.domain.user"> pilih * dari pengguna di mana id =#{id} </select> <!-create user (create)-> <masukkan id = "addUser" parameTerType = "me.gacl.domain.user"> masukkan ke pengguna (nama, usia) nilai (#{name},#{#{ever} (name {name {name {{name {name {name {name {name {name {name {name {name {name, id = "deleteUser" parameTerType = "int"> hapus dari pengguna di mana id =#{id} </delete> <!-memodifikasi pengguna (update)-> <update id = "updateAser" parameTerType = "me.gacl.domain.user"> update name =#{name}, usia =#{ever} {ever {{ever {ever {{ever {ever {even {even {even {even {even {even {even {even {evene {evener {evener {evener. id = "getAllUsers" resultType = "me.gacl.domain.user"> SELECT * from Users </select> </mapper> Kode kelas uji unit adalah sebagai berikut:
package me.gacl.test;import java.util.List;import me.gacl.domain.User;import me.gacl.util.MyBatisUtil;import org.apache.ibatis.session.SqlSession;import org.junit.Test;public class TestCRUDByXmlMapper {@Testpublic void testAdd(){//SqlSession sqlsession = mybatisutil.getsqlsession (false); sqlsession sqlsession = mybatisutil.getsqlSession (true);/*** peta string identifikasi sql,* Me.gacl. Melalui nilai atribut ID dari tag insert, Anda dapat menemukan SQL untuk dieksekusi*/string pernyataan = "me.gacl.mapping.usermapper.adduser"; // peta sql string pengguna pengguna = pengguna baru (); User.setname ("User Lonely dan CanGang"); User.setage ();//Lakukan Operasi MANIK = retes = retes = retesslang "); User.setage ();//Lakukan Operasi MANIK = RABRESION = RABRESION = RABLANG"; Kirim Transaksi // SQLSession.Commit (); // Setelah mengeksekusi SQL dengan SQLSession, Anda perlu menutup SQLSessionqlSession.close (); System.out.println(retResult);}@Testpublic void testUpdate(){SqlSession sqlSession = MyBatisUtil.getSqlSession(true);/*** Map SQL Identification String, * me.gacl.mapping.userMapper is the value of the namespace attribute of the mapper tag in the userMapper.xml file, * updateUser is the id Nilai atribut dari tag pembaruan. SQL yang akan dieksekusi dapat ditemukan melalui nilai atribut ID dari tag pembaruan. */Pernyataan String = "Me.Gacl.Mapping.Usermapper.updateUser"; // Memetakan SQL ID String Pengguna Pengguna = User baru (); user.setid (); user.setname ("Lonely canggang"); User.setage ();//Eksekusi Operasi Modifikasi Int Retresult = SQLSESSESI. untuk menutup sqlsession.close (); System.out.println (retresult);}@testpublic void testDelete () {sqlsession sqlsession = mybatisutil.getsqlsession (true);/*** peta sql identifikasi string,* me.gacl.mapping.user file usermapper.xml, * DeleteUser adalah nilai atribut ID dari tag delete. The SQL to be executed can be found through the id attribute value of the delete tag*/String statement = "me.gacl.mapping.userMapper.deleteUser";//Map SQL Identification String//Execute the delete operation int retResult = sqlSession.delete(statement,);// After executing SQL with SqlSession, you need to close Sqlsessionsqlsession.close (); System.out.println (retresult);}@testpublic void testgetall () {sqlsession sqlsession = mybatisutil.getsqlSession ();/*** peta sql identifikasi string sql,* me.gacl.mapping.mapping File usermapper.xml, * getAllUsers adalah nilai atribut ID dari tag pilih. Melalui nilai atribut ID dari tag pilih, Anda dapat menemukan SQL untuk dieksekusi*/Pernyataan String yang akan dieksekusi = "me.gacl.mapping.usermapper.getallusers"; // Memetakan SQL Identity String // Execute Operations, dan secara otomatis merangkum hasil kueri ke dalam daftar <User> Daftar Kembali <User> LSTUS = LSTUS = LSK = LSQ. SQLSession Execute SQL, Anda perlu menutup SQLSESSIONSQLSESSION.CLOSE (); System.out.println (lstusers);}} 2. Gunakan mybatis untuk melakukan operasi CRUD pada tabel - implementasi berbasis anotasi
1. Tentukan antarmuka untuk pemetaan SQL
Kode antarmuka Usermapperi adalah sebagai berikut:
Paket Me.Gacl.Mapping; impor java.util.list; import me.gacl.domain.user; impor org.apache.ibatis.annotations.delete; impor org.apache.ibatis.annotations. GACL* Tentukan antarmuka untuk pemetaan SQL, tentukan SQL yang akan dieksekusi menggunakan anotasi*/antarmuka publik usermapperi {// gunakan anotasi @insert untuk menunjukkan nilai -nilai pengguna (name, #{name {{name {name {name {name {name {{name {{name {name {{name {{{{{{{{{usia)) SQL yang akan dieksekusi dengan metode deletebyId@delete ("Hapus dari pengguna di mana id =#{id}") public int deletebyId (int id); // Gunakan anotasi @update untuk menentukan SQL yang akan dijalankan (Umur Usia) ("Update (" Update Pengguna Atur Nama =#{name}, Usia =#{Usia Usia) ("Umur. Anotasi @Select untuk menentukan SQL yang akan dieksekusi dengan metode getById @select * dari pengguna di mana id =#{id} ") pengguna publik getById (int id); // Gunakan anotasi @select untuk menentukan SQL yang akan dijalankan dengan metode getAll @select (" pilih * dari pengguna ") Daftar publik <) Getall (); Perlu dicatat bahwa kita tidak perlu menulis kode kelas implementasi spesifik untuk antarmuka usermapperi. Kelas implementasi khusus ini secara dinamis dibangun oleh MyBatis, dan kita hanya perlu menggunakannya secara langsung.
2. Daftarkan antarmuka pemetaan ini di file conf.xml
<? Xml Version = "." encoding="UTF-"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config .//EN" "http://mybatis.org/dtd/mybatis--config.dtd"><configuration><environments default="development"><environment id="development"><transactionManager type="JDBC" /> <!-Mengkonfigurasi Informasi Koneksi Basis Data-> <DataSource type = "pooled"> <properti name = "driver" value = "com.mysql.jdbc.driver" /> <name properti = "url" value = "jdbc: mysql: // localhost: /mybatis" /> <"name =" USOM = "USOUN =" "" "" "" "name" name = "" "" "name" name = "" "" "" name "name =" "name =" "" "name" name = "" "" "name" name = "" name "name =" "name =" "name =" "name =" "" /> </dateSource> </vervence> </preenments> <mappers> <!- Daftarkan file usermapper.xml. The userMapper.xml is located in the package me.gacl.mapping, so the resource is written as me/gacl/mapping/userMapper.xml--><mapper resource="me/gacl/mapping/userMapper.xml"/><!-- Register UserMapper mapping interface-><mapper//mappers></configuration>
Kode kelas uji unit adalah sebagai berikut:
Paket Me.Gacl.test; impor java.util.list; import me.gacl.domain.user; import me.gacl.mapping.usermapperi; impor me.gacl.util.mybatisutil@orgroBlaps; iatrancrapping.esession.session.sqlsession; [email protected]. void testAdd () {SQLSession SQLSession = mybatisutil.getsqlSession (true); // Dapatkan objek kelas implementasi dari antarmuka usermapperi. Objek kelas implementasi dari antarmuka USermapperi secara dinamis dibangun oleh sqlsession.getMapper (usermapperi.class). Usermapperi mapper = sqlSession.getMapper (usermapperi.class); pengguna pengguna = pengguna baru (); user.setname ("userxdp"); user.setage (); int add = mapper.add (user); // setelah menggunakan sqlsession untuk menjalankan sql, Anda perlu menutup sqlsessqSesion. System.out.println (add);}@testpublic void testupdate () {sqlSession sqlSession = mybatisutil.getsqlsession (true); // Dapatkan objek kelas implementasi dari antarmuka USermapperi. Objek kelas implementasi dari antarmuka usermapperi secara dinamis dibangun oleh sqlsession.getMapper (usermapperi.class) usermapperi mapper = sqlSession.getMapper (usermapperi.class); Pengguna pengguna = pengguna baru (); user.setId (); user.setname ("long lang_xdp"); user.setage (); // Jalankan operasi modifikasi int retresult = mapper.update (user); // setelah menggunakan sqlsession, Anda perlu menutup sqlsessionSqLSession.close. testDelete () {SQLSession SQLSession = mybatisutil.getsqlSession (true); // Dapatkan objek kelas implementasi dari antarmuka usermapperi. Objek kelas implementasi dari antarmuka usermapperi secara dinamis dibangun oleh sqlsession.getMapper (usermapperi.class) usermapperi mapper = sqlSession.getMapper (usermapperi.class); // Jalankan helete int retresult = mapper.deletebyid (); // Setelah menggunakan sql sqlsession ke sunt.deletebyid (); // Setelah menggunakan sql sqlsesion untuk sqlsession = mapper.deletebyid (); // Setelah menggunakan sql SQLSEFION untuk SQLSEPION = MAPPer Sqlsessionsqlsession.close (); System.out.println (retresult);}@testpublic void testGetUser () {sqlSession sqlSession = mybatisutil.getsqlSession (); // Dapatkan objek kelas implementasi dari antarmuka usermapperi. Objek kelas implementasi dari antarmuka usermapperi secara dinamis dibangun oleh sqlsession.getMapper (usermapperi.class) usermapperi mapper = sqlSession.getMapper (execute.class); // Eksekusi pada operasi dan secara otomatis merangkum hasil kueri ke dalam pengguna pengembalian pengguna = mapper.getbyid (). Sqlsessionsqlsession.close (); System.out.println (user);}@testpublic void testGetAll () {sqlSession sqlSession = mybatisutil.getsqlSession (); // Dapatkan objek kelas implementasi dari antarmuka USermapperi. Objek kelas implementasi antarmuka usermapperi secara dinamis dibangun oleh sqlsession.getMapper (usermapperi.class) usermapperi mapper = sqlSession.getMapper (usermapperi.class); // eksekutasi operasi kueri dan secara otomatis merangkum hasil kueri ke dalam daftar <user> dan pengembalian <user> langgar query = mappers. SQLSESSION, Anda perlu menutup SQLSessionQLSession.close (); System.out.println (lstusers);}}
Kode kelas alat mybatisutil yang digunakan adalah sebagai berikut:
Paket Me.Gacl.util; impor java.io.inputstream; impor org.apache.ibatis.Session.SQLSESSION; impor org.apache.ibatis.Session.SQLSessionFactory; import org.apache.ibatis.Sessies.SQLSESSIONCESSIONCESTORY; import org.apache.ibatis.Sessies.sqlSessionFactory; import org.apache.ampaSessies.Sesies Mybatisutil {/*** dapatkan sqlSessionFactory*@return sqlsessionfactory*/public static SQLSessionFactory getSqlSessionFactory () {string resource = "conf.xml"; inputStream adalah = mybatisutil.class.getClasser (). SQLSessionFactoryBuilder (). Build (is); return factory;}/*** Dapatkan sqlsession* @return sqlsession*/public static sqlsession getsqlsession () {return getsqlSessionFactory (). Komit transaksi setelah SQL dieksekusi* False menunjukkan bahwa objek SQLSession yang dibuat tidak akan secara otomatis melakukan transaksi setelah SQL dieksekusi. Pada saat ini, kita perlu memanggil sqlsession.Commit () secara manual untuk mengirimkan transaksi* @return sqlsession*/public static sqlsession getsqlsession (boolean isautocommit) {return getSqlSessionFactory (). Opensesi (isAutocommit);}}Semua kode terkait di atas telah diuji dan semua orang dapat menggunakannya dengan percaya diri!
Di atas adalah tutorial pembelajaran mybatis yang diperkenalkan kepada Anda oleh editor (II) - cara menggunakan mybatis untuk melakukan operasi crud di tabel pengguna. Saya harap ini akan membantu semua orang. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas semua orang tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!