SQLSESTIONTEMPLATE
SQLSESSIONTEMPLATE adalah inti dari Mybatis-Spring. Kelas ini bertanggung jawab untuk mengelola SQLSession Mybatis, menyebut metode SQL Mybatis, dan menerjemahkan pengecualian. SQLSessionTemplate aman-utas dan dapat dibagikan dan digunakan oleh beberapa DAO.
Saat memanggil metode SQL, itu berisi metode yang dikembalikan dari metode mapper getMapper (). SQLSessionTemplate akan memastikan bahwa SQLSession yang digunakan terkait dengan transaksi pegas saat ini. Selain itu, ia mengelola siklus hidup sesi, termasuk operasi penutupan, komit atau rollback yang diperlukan.
SQLSessionTemplate mengimplementasikan SQLSession, yang berarti bahwa perlu untuk mengganti sqlsession mybatis.
SQLSessionTemplate biasanya digunakan untuk menggantikan implementasi mybatis default dari defaultSQLSession karena tidak dapat berpartisipasi dalam transaksi pegas atau disuntikkan karena itu adalah benang. Transformasi antara dua kelas dalam aplikasi yang sama dapat menyebabkan masalah dengan konsistensi data.
Objek SQLSessionTemplate dapat dibuat menggunakan SQLSessionFactory sebagai parameter untuk membangun metode.
<bean id = "sqlsession"> <constructor-arg index = "0" ref = "sqlSessionFactory"/> </ bean>
Kacang ini sekarang dapat disuntikkan langsung ke kacang DAO. Anda perlu menambahkan properti SQLSession ke kacang, seperti kode berikut:
Public Class UserdaoImpl mengimplementasikan userdao {private sqlsession sqlsession; public void setSQLSession (SQLSession SQLSession) {this.sqlSession = SQLSession; } pengguna umum getUser (string userId) {return (user) sqlSession.selectone ("org.mybatis.spring.sample.mapper.usermapper.getUser", userId); }}Menyuntikkan sqlsessionTemplate sebagai berikut:
<bean id = "userdao"> <name properti = "sqlSession" ref = "sqlsession"/> </ bean>
SQLSESSIONDAOSUPPORT
SQLSessiondaOsupport adalah kelas dukungan abstrak yang digunakan untuk memberi Anda SQLSession. Memanggil metode getSQLSession () Anda akan mendapatkan SQLSessionTemplate, yang kemudian dapat digunakan untuk menjalankan metode SQL, seperti ini:
Public Class UserdaoImpl memperluas SQLSessiondaOsupport mengimplementasikan userdao {pengguna publik getUser (string userId) {return (user) getSqlSession (). selectone ("org.mybatis.spring.sample.mapper.usermapper.getUser", userid); }} Biasanya MapperFactoryBean adalah pilihan pertama untuk kelas ini karena tidak memerlukan kode tambahan. Namun, jika Anda perlu melakukan pekerjaan non-mybatis lainnya di DAO atau membutuhkan kelas tertentu, kelas ini berguna. SQLSessiondaOsupport membutuhkan properti SQLSessionFactory atau SQLSessionTemplate untuk ditetapkan. Ini secara eksplisit diatur atau secara otomatis dirakit oleh Spring. Jika keduanya diatur, maka SQLSessionFactory diabaikan.
Asumsikan bahwa kelas UsermapperImpl adalah subclass dari SQLSessiondaOsupport, dapat dikonfigurasi sebagai berikut di musim semi:
<bean id = "userMapper"> <name properti = "sqlSessionFactory" ref = "sqlsessionfactory"/> </bean>