Integrasi Spring 3 dengan MyBatis 3

Spring MyBatis

Tulisan ini merupakan tulisan ketiga dari seri tutorial mengenai sebuah persistence framework yang bernama MyBatis. Tulisan pertama bisa dilihat disini sedangkan tulisan bagian kedua disini. Tulisan kali ini akan membahas mengenai integrasi antara Spring framework dengan MyBatis. Spring digunakan pada service layer sedangkan MyBatis digunakan pada data access layer.

Contoh program yang ada pada tutorial ini sebenarnya hampir mirip dengan dengan yang ada pada tutorial pertama. Tidak jauh beda, bolehlah saya katakan 85% sama. Namun agar tidak membuat bingung yang membacanya maka dengan baik hati saya tuliskan semuanya secara lengkap disini :D.

Oke, jadi ini adalah stuktur akhir dari project yang akan kita buat pada tutorial ini. Kebetulan saya menggunakan Eclipse, kalau sukanya Netbeans atau yang lain sama saja karena disini saya menggunakan struktur folder dari Maven

project structure

Dependency

Siapkan terlebih dahulu library apa saja yang dibutuhkan dan biarkan Maven mendownloadkannya untuk kita. Tulis library yang dibutuhkan pada file pom.xml seperti dibawah ini
file : pom.xml

Tabel Database dan Kelas Entity

Bagian ini tidak perlu penjelasan, jadi silahkan langsung disimak saja kode-kode yang ada 🙂
Dibawah ini kode sql untuk membuat tabel “user” dengan beberapa kolom

Sedangkan dibawah ini kelas User yang mewakili struktur tabel diatas
file : src/main/java/com/agungsetiawan/SpringMyBatisIntegration/domain/User.java

Konfigurasi Spring Context

Pada bagian ini baru mulai kelihatan perbedaannya dengan tutorial yang terdahulu. Kalau pada tulisan terdahulu kita membuat file konfigurasi untuk MyBatis yang berisi datasource, alias, dan juga meload file mapper dimana dia berada maka pada tulisan kali ini tidak. Semua yang tadi saya sebutkan akan ditulis pada file konfigurasi Spring. Namun sebelumnya kita buat terlebih dahulu file jdbc.properties yang berisi sejumlah settingan untuk datasource yang digunakan.

file : src/main/resources/jdbc.properties

Selanjutnya untuk file konfigurasi Spring context tidak jauh berbeda dibandingkan dengan saat kita mengintegrasikan Spring dengan Hibernate, bagi yang sudah terbiasa pasti melihat hal ini. Dalam kasus dengan MyBatis, tinggal bagian yang menggunakan Hibernate diganti dengam MyBatis. Selengkapnya bisa dilihat berikut ini

file : src/main/resources/Spring-Context.xml

Isi dari file konfigurasi xml diatas cukup menggetarkan hati bagi yang belum terbiasa hahaa.. tenang saja, pada saatnya nanti kalau sudah terbiasa pasti tidak akan lagi menganggapnya sesuatu yang mengerikan 😀

Mapper

Kelas dan file mapper dibawah ini sama persis dengan yang pernah saya tulis dan bahas pada tutorial bagian satu. Silahkan menuju kesana untuk merujuk penjelasannya. Kali ini saya balik lagi menggunakan xml bukan annotation.

file : src/main/java/com/agungsetiawan/SpringMyBatisIntegration/UserMapper.java

file : src/main/resources/mapper/UserMapper.xml

Service

Kelas service yang akan kita buat ini menggunakan Spring, bisa dilihat pada beberapa annotation yang digunakan seperti @Service, @Transactional dan @Autowired. Kelas ini menggunakan SqlSession yang di-inject-kan oleh Spring, lihat kembali file konfigurasi Spring context.

file : src/main/java/com/agungsetiawan/SpringHibernateIntegration/UserService.java

Pengujian

Pengujian yang primitif (hehe..) adalah menggunakan kelas utama yang memiliki method main. Kita ambil service disitu terus coba panggil salah satu method-nya dan hasil ditampilkan pada konsol. Contohnya adalah sebagai berikut

Tentunya jangan lupa untuk terlebih dahulu memasukkan data sampel pengujian.
sample data

Nah disini sekalian saja kita belajar menulis pengujian yang lebih modern. Untuk melakukan pengujian pada Spring kita membutuhkan sebuah library Spring-Test. Tambah library tersebut pada pom.xml

Bagaimana pengujian dengan cara modern? pernah saya tulis konsepnya tentang hal tersebut disini
Sekarang seperti inilah kode pengujiannya

file : src/test/java/com/agungsetiawan/SpringMyBatisIntegration/service/UserServiceTest.java

Penutup

Demikian tutorial integrasi antara Spring dan MyBatis yang dapat saya sampaikan
Semoga bermanfaat 🙂
Jika ada yang mau ditanyakan saya persilahkan untuk bertanya melalui fitur komentar dibagian bawah dari tulisan ini, nanti kita diskusi bersama

Facebook Comments
 

Agung Setiawan

Agung Setiawan adalah software engineer di BukaLapak.com, penulis sekaligus pecinta sastra, dan pembaca buku

 
Halo, perkenalkan saya Agung Setiawan.
Saya Software Engineer di BukaLapak.
Simak pemikian saya soal dunia Software Engineering via Twitter di @agungsetiawanmu dan facebook
Blog ini saya update seminggu sekali jadi sering-sering saja mampir
Mau belajar Vim bareng saya?
Belajar ngoding dari nol menggunakan PHP

Leave a Reply

Your email address will not be published. Required fields are marked *