Saya sering menggunakan List<Map<String,Object>> sebagai objek penerima pertanyaan dalam projek Rasanya mudah untuk digunakan dan tidak perlu membuat kelas DTO untuk setiap pertanyaan berbilang jadual.
.
Di atas hanya untuk pertanyaan Jika peta digunakan pada DTO, adakah VO akan mengalami masalah yang sama?
1 Sukar untuk dikekalkan apabila bilangan parameter peta adalah besar. Untuk mengenal pasti kunci dalam bentuk rentetan, mungkin terdapat ralat di mana huruf tidak ditambahkan pada program
2. Tukar peta kepada entiti, yang menggunakan sumber. Atau bukannya menukar entiti, teruskan peta ke lapisan SQL, tetapi anda perlu menilai nilai nol (sama ada untuk lulus parameter ini... Apabila bilangan parameter terlalu besar, banyak pertimbangan diperlukan (Kecekapan SQL berkurangan, dan ia tidak mudah untuk dikekalkan)
3 Ia mengambil masa lebih lama untuk mencipta peta dan kemudian memasukkan nilai parameter daripada mencipta kelas entiti (perbezaan dalam masa penciptaan adalah sangat kecil apabila bilangan peta kecil, tetapi perbezaannya akan menjadi sangat besar apabila bilangannya besar)
4. Kawalan jenis parameter. Parameter yang bukan jenis rentetan dalam SQL mesti ditukar kepada nilai berangka. . . Ralat berlaku ke dalam sql dan mudah di CC
5 Hadapi objek, pisahkan lapisan SQL daripada entiti, dan kurangkan gandingan. Jika tidak, penyelenggaraan akan menyusahkan
Saya rasa ada dua aspek:
Saya mengada-ngada, haha, saya rasa guru universiti saya memberitahu saya mengenainya. .1. Pemikiran berorientasikan objek
2 Kecekapan, lagipun, adalah mudah untuk membuat kesilapan apabila bermain dengan pertanyaan [kecekapan di sini merujuk kepada map.get(key)], map.put dan. kemudian dapatkan
Tidak kondusif untuk pembangunan bersama dan kemudian penyelenggaraan oleh orang lain
Map<String, Object> adalah jenis tidak selamat
Peta menggunakan parameter pertanyaan Pemanggil kaedah tidak mengetahui pasangan nilai kunci dan jenis pasangan nilai kunci yang boleh disimpan dalam parameter kaedah yang disediakan oleh pembekal kaedah Masalah penghantaran rawak map.put (kunci, nilai ) tidak boleh ditemui pada peringkat penyusunan Gunakan QueryDto boleh menentukan jenis dan sekatan parameter dengan tepat (Pengesahan JSR 303)
.Jika saya faham betul.
Objek pertanyaan data merujuk kepada pengenkapsulan parameter kaedah pertanyaan dao, dan tidak merujuk kepada pengembalian kaedah ini ialah kod itu boleh dibacalebih tinggi. tetapi pertanyaan anda tidak menyokongnya sama sekali, tetapi Bagaimana anda memberitahu pengguna dengan pasti?
Parameter pemulangan dao hendaklah menggunakan do/dto.map
作为接口参数, 使用者想要确定具体的查询条件非常困难, 而且给外部接口调用的灵活性太高, 比如 使用者在map
中增加一个x
mengikut keperluan dokumen.
Rasanya ia disebabkan terutamanya oleh kesukaran menyahpepijat dan penyelenggaraan Contohnya, sebarang salah ejaan kunci tidak boleh dilaporkan semula sehingga pertanyaan dilaksanakan
Kelebihan peta:
Sila lihat kelebihan Javabeans:
Timbang kebaikan dan keburukan, jika pembangunan pasukan atau JavaBeans lebih baik, projek peribadi tidak penting.
Tambahan dialu-alukan! ~