Rumah  >  Soal Jawab  >  teks badan

java - 有关mybatis里面对同一张表的操作的疑惑

比如:
查询会员列表的话,where后面带很多个if test条件是不是会影响效率,还是重写个sql,但是如果每个条件查询都重写sql,sql又太多了,显得很乱。该怎么选择?

PHP中文网PHP中文网2741 hari yang lalu493

membalas semua(4)saya akan balas

  • 天蓬老师

    天蓬老师2017-04-18 10:30:32

    Kecekapan tidak akan banyak terjejas Lagipun, semuanya adalah operasi memori. terdapat banyak pemanggil untuk satu Mybatis , ia akan menjadi sangat menyusahkan untuk mencari gabungan, dan penalaan SQL akan menjadi sangat sukar, jadi cuba tulis satu untuk setiap pertanyaan (kecuali paging jika anda benar-benar memerlukannya SQL). adalah disyorkan untuk tidak mempunyai terlalu banyak IF...TEST

    balas
    0
  • ringa_lee

    ringa_lee2017-04-18 10:30:32

    Ia tidak akan terlalu lambat untuk menulis pertimbangan if dengan cara yang ditetapkan, tetapi jika ia tidak berkesan, gunakan paparan

    balas
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:30:32

    Mesti ada cache, yang sepatutnya tidak menjejaskan kecekapan terlalu banyak.
    Selain itu, jika terdapat N syarat, maka terdapat 2^N kombinasi keadaan sepadan Berapa banyak SQL berbeza yang anda perlu tulis?

    balas
    0
  • 迷茫

    迷茫2017-04-18 10:30:32

    1. Ia adalah perkara biasa untuk mempunyai banyak keadaan ujian selepas di mana dalam fungsi pertanyaan, dan ia juga biasa untuk mempunyai lebih daripada sepuluh atau dua puluh syarat pertanyaan
    2 Memandangkan MyBatis menyediakan fungsi tag ujian , mesti ada Ia telah dioptimumkan, dan ia pastinya jauh lebih cekap daripada menulis berbilang SQL dan kemudian menilai offload melalui kod Java
    3. Kesan terbesar pada kelajuan pelaksanaan ialah konfigurasi perkakasan pelayan pangkalan data dan platform pangkalan data. Sebagai pengaturcara biasa, anda tidak perlu terlalu memikirkan masalah ini, anda juga boleh meletakkan kod anda sendiri dalam persekitaran ujian
    4. Berbanding dengan perubahan dalam keadaan pertanyaan, perubahan dalam lajur hasil pertanyaan lebih menjejaskan kecekapan kerana ia perlu ditutup secara manual Caching remapResults

    <select id="verificationCode_select" parameterClass="String" resultClass="HashMap" remapResults="true">$sql$</select>
    

    Ringkasnya, tidak kira sama ada ia berfungsi atau tidak, mari tulis kod dan SQL dan ujinya dahulu!

    balas
    0
  • Batalbalas