1. # Perlakukan semua data yang masuk sebagai string, dan tambahkan kutipan ganda ke data yang masuk secara otomatis. Misalnya: Pesan dengan #user_id #, jika nilai yang dilewati adalah 111, maka nilai saat mem -parsing ke SQL dipesan oleh "111". Jika nilai yang dilewati adalah ID, parsed ke SQL adalah pesanan dengan "ID".
2. $ Menampilkan data yang diteruskan secara langsung dan menghasilkannya di SQL. Misalnya: Pesan dengan $ user_id $, jika nilai yang dilewati adalah 111, maka nilai saat diuraikan ke SQL adalah pesanan oleh user_id. Jika nilai yang dilewati adalah ID, parsed ke SQL adalah pesanan oleh ID.
3. Metode # dapat sangat mencegah injeksi SQL.
4. Metode $ tidak dapat mencegah injeksi SQL.
5. Metode $ umumnya digunakan untuk lulus dalam objek database, seperti meneruskan nama tabel.
6. Umumnya, jika Anda dapat menggunakan #, jangan gunakan $.
Saat menggunakan pesanan dengan parameter dinamis saat menyortir mybatis, Anda perlu memperhatikan penggunaan $ bukan #
Penggantian string
Secara default, menggunakan sintaks format #{} menyebabkan mybatis membuat properti pernyataan preproses dan menetapkan nilai yang aman dengannya sebagai latar belakang (seperti?). Ini aman dan cepat, dan kadang -kadang Anda hanya ingin memasukkan string yang tidak berubah langsung ke pernyataan SQL. Misalnya, seperti pesanan oleh, Anda dapat menggunakannya seperti ini: memesan dengan $ {columnName}
Di sini mybatis tidak akan memodifikasi atau melarikan diri dari string.
Penting: Tidak aman untuk menerima output konten dari pengguna dan memberikannya ke string yang tidak berubah dalam pernyataan tersebut. Ini dapat menyebabkan potensi serangan injeksi SQL, jadi Anda tidak boleh mengizinkan pengguna untuk memasuki bidang ini, atau biasanya melarikan diri dan memeriksanya sendiri.
Di atas adalah diskusi singkat tentang perbedaan antara # dan $ di mybatis. Saya harap semua orang dapat mendukung wulin.com ~