Tulis contoh sederhana dari MyBatis Memasukkan Data
1. Arti pembangunan tabel basis data DOB = tanggal lahir
Buat tabel siswa (stud_id nomor utama, nama varchar2 (20), email varchar2 (20), tanggal dob);
Tabel yang dibuat dalam database Oracle berarti bahwa kreasi itu berhasil. Jika namanya telah digunakan, Anda dapat menghapusnya sebelum membuat tabel: Drop Table siswa; atau Cascade Delete Drop Table Siswa Kendala Cascade; Dan kemudian buat ulang lagi.
2 Buat proyek baru
2.1 Buat paket dan kelas yang sesuai, di mana siswa adalah objek yang ingin kami masukkan. Karena tipe data sesuai dengan nilai dalam database, kami dapat memasukkan seluruh objek. Oleh karena itu, kami menggunakan kelas PoJo untuk merangkum objek.
paket com.mybatis.pojo; impor java.util.date; siswa kelas publik {private integer studid; nama string pribadi; email string pribadi; DOB Tanggal Pribadi; Public Student () {} // Catatan konstruktor tanpa parameter siswa publik (integer studid, nama string, email string, tanggal dob) {this.studid = studid; this.name = name; this.email = email; this.dob = dob; } public integer getStudid () {return studid; } public void setStudid (integer studid) {this.studid = studid; } public string getName () {return name; } public void setName (name string) {this.name = name; } public String geteMail () {return email; } public void seteMail (string email) {this.email = email; } tanggal publik getDob () {return dob; } public void setDob (tanggal dob) {this.dob = dob; } @Override Public String ToString () {return "Student [studid =" + studid + ", name =" + name + ", email =" + email + ", dob =" + dob + "]"; }}3. Memperkenalkan paket inti mybatis dan paket ketergantungan opsional dalam proyek
Unduh File: Unduh Paket MyBatis
Unduh Versi Terbaru: https://github.com/mybatis/mybatis-3/releases
Paket yang Diperlukan MyBatis-3.3.0.Jar OJDBC14.Jar
Paket Opsional JUnit-4.7.Jar LOG4J-1.2.17.Jar
Di antara mereka, mybatis-3.3.0.jar digunakan untuk mengimplementasikan fungsi yang disediakan oleh mybatis, ojdbc14.jar digunakan untuk terhubung ke database, junit-4.7.jar digunakan untuk mengimplementasikan pengujian fungsional, dan log4j-1.2.17.jar digunakan untuk melakukan logging, dan log4j-1.2.17.
Seperti yang ditunjukkan pada gambar di bawah ini: Buat toples folder baru di direktori proyek, salin dan tempel paket yang perlu Anda impor ke direktori JAR
Catatan: Jangan gunakan bahasa Mandarin saat menyimpan paket -paket toples ini secara lokal.
Kemudian klik kanan untuk memilih empat file di direktori JAR, klik untuk menambahkan "BuildPath-> Tambah Path", dan Anda akan melihat antarmuka berikut: itu berarti bahwa jalur ditambahkan dengan sukses
4. Memperkenalkan file konfigurasi mybatis file kendala dtd dalam proyek
Demikian pula, buat direktori DTD baru di bawah proyek dan salin file kendala ke direktori, seperti yang ditunjukkan pada gambar di bawah ini: struktur file dtd, unduhan file dtd:
http://download.csdn.net/download/suwu150/9660699
Fungsi file DTD adalah untuk membatasi file konfigurasi XML, sehingga pemrogram dapat menulis file XML sesuai dengan spesifikasi, dan MyBatis dapat membaca dan menguraikannya dengan benar. DTD di atas dikonfigurasi secara lokal, dan tentu saja kami juga dapat menggunakan koneksi situs web resmi untuk membatasi.
5 File konfigurasi dan file pemetaan di mybatis masing -masing dimasukkan ke dalam proyek
1) mybatis-config.xml di bawah src:
Pertama, kami mengaitkan kendala DTD lokal, masukkan gambar berikut di bawah preferensi, masukkan XML di kotak pencarian, pilih nama konfigurasi katalog XML, lalu klik tombol Tambah di sebelah kanan
Antarmuka yang ditunjukkan pada gambar di bawah ini muncul, di mana lokasi lokasi dan lokasi kunci kosong. Gambar di bawah ini dikonfigurasi. Konten utama adalah -// mybatis.org//dtd config 3.0 // en. Konten lokasi adalah milik Anda. Anda dapat memilihnya melalui ruang kerja, yaitu file DTD yang kami salin ke proyek sebelumnya (pada langkah 4):
Klik OK, sekarang kita dapat menulis file konfigurasi XML. Tujuan menambahkan kendala adalah untuk membakukan tulisan programmer untuk memastikan bahwa mybatis dapat diuraikan secara normal.
Seperti yang ditunjukkan pada gambar di bawah ini: Pilih SRC dan klik kanan untuk membuat file baru mybatis-config.xml
Catatan: Awal file XML harus diatapi, dan tidak boleh ada spasi di depannya.
<? Xml Version = "1.0" Encoding = "UTF-8"?> <!-Lakukan kendala DTD, di mana-// mybatis.org//dtd config 3.0 // en adalah kendala publik, http://mybatis.org/dtd/mybatis-3-config. Konfigurasi publik "-// mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <Configuration> <yypealiases> <!-alias untuk pojo class-> <coomealise = "coom." coompo. "coompo." coom. /> </yypealiases> <!- Mengkonfigurasi lingkungan basis data di mana pengembangan adalah nama database default. Jenis TransactionManager adalah tipe JDBC. Sumber Data DataSource menggunakan kumpulan koneksi-> <lingkungan default = "pengembangan"> <lingkungan id = "pengembangan"> <transactionManager type = "jdbc"> </transactionmanager> <DataSource type = "pooled"> <!-Konfigurasikan informasi database. Gunakan database Oracle di sini-> <name properti = "driver" value = "oracle.jdbc.driver.oracledriver" /> <name properti = "url" value = "jdbc: oracle: tipis:@127.0.0.1: 1521: orcl" /> <nama properti = "value" value "value" /orccl " </dateSource> </vench> </prepersatch> <!-Mengkonfigurasi jalur pemetaan file XML, di mana Anda dapat melakukan operasi SQL-> <mappers> <mapper resource = "com/mybatis/pemetaan/studentmapper.xml"/> </mappers> </konfigurasi>
2) StudentMapper.xml di bawah paket com.mybatis.mappers:
Pertama, kami menerapkan antarmuka com.mybatis.mappers; Paket untuk membuat antarmuka baru StudentMapper.java di bawah paket untuk sesuai dengan pernyataan SQL (pemetaan) di file XML, sehingga kami dapat menyebutnya
paket com.mybatis.mappers; impor java.util.list; impor com.mybatis.pojo.student; Public Interface StudentMapper {List <shonish> findAllstudents (); Siswa FindStudentById (Integer ID); membatalkan insertstudent (siswa siswa); }Gunakan metode yang sama untuk membatasi file mapper
Kemudian tulis kode 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"> <!-com. antarmuka yang kami definisikan. Dengan cara ini Anda dapat menggunakan antarmuka untuk memanggil pernyataan pemetaan SQL. Nama ini harus sesuai dengan antarmuka-> <mapper namespace = "com.mybatis.mappers.studentmapper"> <resultMap type = "student" id = "studentResult"> <id properti = "studid" kolom = "stud_id" /> <hasil = "nama" kolom = "nama" /> <Properti Hasil = "DO" DOAD "DOAD" /KOLOM "DOAD" KOMOL " /KOMUM UAMAN =" NAME " </resultMap> <select id="findAllStudents" resultMap="StudentResult"> SELECT * FROM STUDENTS </select> <!-- If the column name and the property name are inconsistent, you can give an alias to the query column--> <select id="findStudentById" parameterType="int" resultType="Student"> SELECT STUD_ID AS STUDID,NAME,EMAIL,DOB FROM STUDENTS WHERE Stud_id =#{id} </sfect> <masukkan id = "insertStudent" parameTerType = "student"> masukkan ke siswa (stud_id, name, email, dob) values (#{studid},#{name},#{email},#{dob}) </insert> </mapper> ******************************************************
Catatan: Jangan menulis titik koma di akhir pernyataan SQL yang ditulis dalam file XML, jika tidak kesalahan akan dilaporkan. ORA-00911: Karakter tidak valid
******************************************************
6 Mengkonfigurasi output log di file log4j.properties:
Di bawah lokasi SRC, nama file log4j.properties
isi:
LOG4J.ROOTLOGGER = DEBUG, stdout LOG4J.AppENDER.STDOUT = org.apache.log4j.consoleAppender LOG4J.Appender.stdout.layout = org.apache.log4j.patternlayout =%coDiFender log4j.logger.java.sql.resultset = info log4j.logger.org.apache = info log4j.logger.java.sql.connection = debug log4j.logger.java.sql.statement = debug Log4j.logger.java.sqepepeDe.sql.
7 Buat kelas tes studentmappertest.java
paket com.mybatis.test; impor java.io.ioException; impor java.io.inputstream; impor java.util.date; impor org.apache.ibatis.io.Resources; impor org.apache.ibatis.Session.SQLSessionFactory; impor org.apache.ibatis.Session.SQLSessionFactory; impor org.apache.ibatis.Session.SQLSessionFactoryBuilder; impor org.junit.test; impor com.mybatis.mappers.studentmapper; impor com.mybatis.pojo.student; Public Class StudentMappertest {@test public void test_insertStudent () {sqlSession session = null; coba {// dapatkan file konfigurasi inputStream inputStream = resource.getResourceAsstream ("mybatis-config.xml"); // Hasilkan objek pabrik SQLSessionFactory sqlSessionFactory = SQLSessionFactoryBuilder () baru (inputStream); // Gunakan objek pabrik untuk menghasilkan sesi SQLSession = sqlSessionFactory.opensession (); // Gunakan SQLSession untuk mendapatkan objek kelas implementasi dari antarmuka pemetaan. Referensi antarmuka menunjuk ke objek kelas implementasi StudentMapper StudentMapper = session.getMapper (StudentMapper.class); Siswa Siswa = Siswa Baru (1, "Suwu150", "[email protected]", Tanggal Baru ()); StudentMapper.Isertstudent (siswa); } catch (ioException e) {session.rollback (); e.printstacktrace (); }}}8 Setelah operasi yang berhasil, Anda akan melihat informasi yang relevan tentang menjalankan output program ini oleh log4j log di konsol, sebagai berikut:
Anda dapat melihat informasi berikut saat menanyakan database
9 Beberapa paket dasar untuk mybatis
Setiap kali file konfigurasi dibaca, objek pabrik SQLSessionFactory dihasilkan, dan kemudian objek SQLSession dihasilkan. Meskipun proses ini tidak rumit, ini juga merupakan proses kode yang berulang, jadi kami dapat dengan mudah merangkumnya:
paket com.mybatis.utils; impor java.io.ioException; impor java.io.inputstream; impor org.apache.ibatis.io.Resources; Impor org.apache.Ibatis.Session.SQLSession; impor org.apache.ibatis.Session.SQLSessionFactory; impor org.apache.ibatis.Session.SQLSessionFactoryBuilder; kelas publik mybatissqlsessionfactory {private static SQLSessionFactory SQLSessionFactory; public static SQLSessionFactory getSQLSessionFactory () {if (sqlSessionFactory == null) {inputStream inputStream = null; coba {inputStream = Resources.getResourCeAsstream ("mybatis-config.xml"); SQLSessionFactory = SQLSessionFactoryBuilder baru (). Build (InputStream); } catch (ioException e) {e.printstacktrace (); Lempar RuntimeException baru (e.getCause ()); }} return SQLSessionFactory; } public static SQLSession opensession () {return opensession (false); // Pengajuan Manual Secara default, jadi kita perlu mengirimkan saat menelepon} Public Static SQLSession Opensession (Boolean AutoCommit) {return getSQLSessionFactory (). OpenSession (AutoCommit); }}Setelah itu, setiap kali Anda menggunakannya, Anda hanya perlu memanggil metode statis di kelas ini.
Kode di atas dapat disingkat sebagai: // Perhatikan apakah transaksi secara otomatis dilakukan atau dilakukan secara manual
MybatissqlSessionfactory.opensession (). GetMapper (studentmapper.class). Insertstudent (s);
10 Dalam tes di atas, kami hanya menyelesaikan fungsi yang ditambahkan. Mari kita terapkan fungsi penghapusan, modifikasi, dan kueri:
Di file pemetaan, buat konfigurasi berikut:
<? 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"> <!-com. antarmuka yang kami definisikan. Dengan cara ini Anda dapat menggunakan antarmuka untuk memanggil pernyataan pemetaan SQL. Nama ini harus sesuai dengan antarmuka-> <mapper namespace = "com.mybatis.mappers.studentmapper"> <resultMap type = "student" id = "studentResult"> <id properti = "studid" kolom = "stud_id" /> <hasil = "nama" kolom = "nama" /> <Properti Hasil = "DO" DOAD "DOAD" /KOLOM "DOAD" KOMOL " /KOMUM UAMAN =" NAME " </resultMap> <select id="findAllStudents" resultMap="StudentResult"> SELECT * FROM STUDENTS </select> <!-- If the column name and the property name are inconsistent, you can give an alias to the query column--> <select id="findStudentById" parameterType="int" resultType="Student"> SELECT STUD_ID AS STUDID,NAME,EMAIL,DOB FROM STUDENTS WHERE Stud_id =#{id} </sfect> <masukkan id = "insertStudent" parameTerType = "student"> masukkan ke siswa (stud_id, name, email, doB) values (#{studid},#{name},#{email},#{dob}) </masukkan <helete id = "deleTeD {{dob}) </incert> <hapus id =" delestud {{dob}) </incert> <hapus id = "deleTeD {doB {dob}) </incert> <delete id =” deleTeD {doB {doB}) </incert> <delete id = ”delestud {doB '” Stud_id =#{id} </delete> <update id = "updateStudentById" parameTerType = "student"> update siswa setel name =#{name}, email =#{email} di mana stud_id =#{studid} </dendate> </papper>Di kelas antarmuka, buat konfigurasi berikut:
paket com.mybatis.mappers; impor java.util.list; impor com.mybatis.pojo.student; Public Interface StudentMapper {List <shonish> findAllstudents (); Siswa FindStudentById (Integer ID); membatalkan insertstudent (siswa siswa); void deletestudentById (integer id); void UpdateStudentById (Mahasiswa); }Tulis kode berikut di file tes:
paket com.mybatis.test; impor java.io.ioException; impor java.io.inputstream; impor java.util.date; impor java.util.list; impor org.apache.ibatis.io.Resources; impor org.apache.ibatis.Session.SQLSessionFactory; impor org.apache.ibatis.Session.SQLSessionFactoryBuilder; impor org.junit.test; impor com.mybatis.mappers.studentmapper; impor com.mybatis.pojo.student; impor com.mybatis.utils.mybatissqlsessionfactory; Public Class StudentMappertest {@test public void test_insertStudent () {sqlSession session = null; coba {// dapatkan file konfigurasi inputStream inputStream = resource.getResourceAsstream ("mybatis-config.xml"); // Hasilkan objek pabrik SQLSessionFactory sqlSessionFactory = SQLSessionFactoryBuilder () baru (inputStream); // Gunakan objek pabrik untuk menghasilkan sesi SQLSession = sqlSessionFactory.opensession (); // Gunakan SQLSession untuk mendapatkan objek kelas implementasi dari antarmuka pemetaan. Referensi antarmuka menunjuk ke objek kelas implementasi StudentMapper StudentMapper = session.getMapper (StudentMapper.class); Siswa Siswa = Siswa Baru (2, "Suwu150", "[email protected]", Tanggal Baru ()); StudentMapper.Isertstudent (siswa); session.commit (); System.out.println ("Eksekusi selesai"); } catch (ioException e) {session.rollback (); e.printstacktrace (); }} @Test public void test_deleteStudentById () {SQLSession session = null; session = mybatissqlSessionFactory.opensession (); // Gunakan kelas yang dienkapsulasi // Gunakan SQLSession untuk mendapatkan objek kelas implementasi dari antarmuka pemetaan. Referensi antarmuka menunjuk ke kelas implementasi Objek StudentMapper StudentMapper = session.getMapper (studermapper.class); StudentMapper.DeleteStudentById (2); session.commit (); System.out.println ("Eksekusi selesai"); } @Test public void test_updatestudentById () {SQLSession session = null; session = mybatissqlSessionFactory.opensession (); // Gunakan kelas yang dienkapsulasi // Gunakan SQLSession untuk mendapatkan objek kelas implementasi dari antarmuka pemetaan. Referensi antarmuka menunjuk ke kelas implementasi Objek StudentMapper StudentMapper = session.getMapper (studermapper.class); Siswa Siswa = Siswa Baru (); student.setstudid (1); Student.setname ("Sususu"); Student.setemail ("[email protected]"); StudentMapper.updatestudentById (siswa); session.commit (); System.out.println ("Eksekusi selesai"); } @Test public void test_findstudentById () {SQLSession session = null; session = mybatissqlSessionFactory.opensession (); // Gunakan kelas yang dienkapsulasi // Gunakan SQLSession untuk mendapatkan objek kelas implementasi dari antarmuka pemetaan. Referensi antarmuka menunjuk ke objek kelas implementasi StudentMapper StudentMapper = session.getMapper (StudentMapper.class); Siswa Siswa = StudentMapper.FindStudentById (1); System.out.println (siswa); System.out.println (siswa); System.out.println ("Eksekusi selesai"); } @Test public void test_findallstudents () {SQLSession sesi = null; session = mybatissqlSessionFactory.opensession (); // Gunakan kelas yang dienkapsulasi // Gunakan SQLSession untuk mendapatkan objek kelas implementasi dari antarmuka pemetaan. Referensi antarmuka menunjuk ke objek kelas implementasi StudentMapper StudentMapper = session.getMapper (StudentMapper.class); Daftar <spinition> Daftar = StudentMapper.FindallStudents (); System.out.println (daftar); System.out.println ("Eksekusi selesai"); }}Dengan cara ini, kami menyelesaikan penambahan, penghapusan, modifikasi, dan pencarian objek siswa
Di atas adalah contoh kode mybatis yang ditambahkan, dihapus, dimodifikasi dan dicari oleh editor. 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!