Skenario Persyaratan: Ketika beberapa data yang disimpan dalam database perlu dienkripsi dan halaman perlu ditampilkan secara normal. Ini mengharuskan kami untuk menyesuaikan konverter tipe. Ketika mybatis mengeksekusi SQL untuk mendapatkan hasilnya, char atau varchar2 dienkripsi dan didekripsi melalui konverter tipe khusus. Kode Java adalah sebagai berikut:
/** Kustom TypeHandler <br/> * 1 Masukkan database, Encrypt * 2 Queries, Decrypt * @Author Administrator * */kelas publik CryptTypehandler mengimplementasikan TypeHandler <CryptType> {cryptType public getResult (hasil rs, string columnname) melempar SQlexception {value value = ""; " CryptType v = cryptType baru (nilai); value = rs.getString (ColumnName); if (value! = null) {value = decrypt (value.toString ()); v.setValue (nilai); } return v; } public cryptType getResult (hasil rs, int columnIndex) melempar sqlexception {string value = ""; CryptType v = cryptType baru (nilai); value = rs.getString (ColumnIndex); if (value! = null) {v.setValue (value); } return v; } public cryptType getResult (callablestatement cs, int columnIndex) melempar sqlexception {string value = ""; CryptType v = cryptType baru (); value = cs.getString (columnIndex); if (value! = null) {v.setValue (value); } return v; } public void setParameter (disiapkan PS, int i, parameter cryptType, jdbctype arg3) melempar sqlexception {string value = ""; if (parameter! = null && parameter.toString ()! = null) {value = encrypt (parameter.toString ()); } ps.setstring (i, value.toString ()); } / ** Masukkan database*@param nilai*@return* / private string encrypt (nilai string) {value = cryptutils.encrypt (value); nilai pengembalian; } / ** Baca dari database* @param value* @return* / private string decrypt (nilai string) {value = cryptutils.decrypt (value); nilai pengembalian; }}Jenis Kustom
impor java.io.serializable; / ** * Tipe Kustom * Atribut entitas yang didefinisikan sebagai jenis ini akan dienkripsi dan didekripsi oleh crypttypehandler.java * * @author yy * */ kelas publik myString mengimplementasikan serial yang dapat di -serial, charsequence, sebanding <string> {private static final long serialversionuid = 1L; nilai string pribadi; public myString () {} cryptType publik (nilai string) {this.value = value; } public String getValue () {nilai kembali; } public void setValue (nilai string) {this.value = value; } public int compareto (String arg0) {// TODO METODE AUTO-ENCOMEERATED Stub Return 0; } public char charak (int arg0) {// TODO Metode yang dihasilkan otomatis Stub return 0; } public int length () {// TODO Metode yang dihasilkan otomatis Stub Return 0; } public CharePerseence setelah (int arg0, int arg1) {// TODO METODE AUTO-ENTO-Stub return NULL NULL; } @Override public string toString () {nilai kembali; }}konfigurasi tipe kustom mybatis
<!-Tipe Kustom-> <peedhandlers> <typeHandler javatype = "com. ***. MyString" handler = "com. ***. Mytypehandler"/> </typeHandlers>
Digunakan dalam entitas
Public Class LoanenterPrise {Private MyString Name; // Catatan: // Jika halaman memiliki kondisi kueri dan juga dienkripsi, penilaian bersyarat di Mybatis SQL tidak akan cocok. Solusi sementara adalah menggunakan cryptType publik getName () {if (name! = Null && name.getValue (). Equals ("")) {return null; } else {return name; }} public void setName (nama cryptType) {this.name = name; }}Di atas adalah konverter tipe kustom mybatis yang diperkenalkan kepada Anda oleh editor. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!