سيشاركك المحرر ثلاثة حلول لحل مشكلة تمرير MyBatis معلمات متعددة. المقدمة المحددة هي كما يلي:
الحل الأول
الطرق الوظيفية لطبقة داو
المستخدم العام SelectUser (اسم السلسلة ، منطقة السلسلة) ؛
mapper.xml المقابلة
<حدد ID = "SelectUser" resultMap = "BaseresultMap"> حدد * من user_user_t حيث user_name = #{0} و user_area = #{1} </select>من بينها ، يمثل #{0} المعلمة الأولى في طبقة DAO ، ويمثل #{1} المعلمة الثانية في طبقة DAO ، ويمكن إضافة المزيد من المعلمات باستمرار.
الحل الثاني
تستخدم هذه الطريقة خريطة لتمرير معلمات متعددة.
طريقة وظيفة طبقة داو
المستخدم العام المختار (خريطة parammap) ؛
mapper.xml المقابلة
<حدد ID = "SelectUser" resultMap = "BaseresultMap"> حدد * من user_user_t حيث user_name = #{username ، jdbctype = varchar} و user_area = #{userarea ، jdbctype = varchar} </select>مكالمة طبقة الخدمة
المستخدم الخاص xxxselectuser () {map parammap = new hashmap () ؛ parammap.put ("اسم المستخدم" ، "يتوافق مع قيمة المعلمة المحددة") ؛ parammap.put ("userarea" ، "يتوافق مع قيمة المعلمة المحددة") ؛ مستخدم user = xxx. مختار (parammap) ؛}أنا شخصياً أعتقد أن هذه الطريقة ليست بديهية بما فيه الكفاية ، وعندما ترى طريقة الواجهة ، لا يمكنك معرفة مباشرة ما هي المعلمات التي سيتم تمريرها.
الحل الثالث
طريقة وظيفة طبقة داو
المستخدم العام SelectUser (param ("username") StringName ،@param ("userarea") منطقة السلسلة) ؛mapper.xml المقابلة
<حدد ID = "SelectUser" resultMap = "BaseresultMap"> حدد * من user_user_t حيث user_name = #{username ، jdbctype = varchar} و user_area = #{userarea ، jdbctype = varchar} </select>أنا شخصياً أعتقد أن هذه الطريقة أفضل ، وتتيح للمطورين معرفة المعلمات التي يمر بها عندما يرون طريقة طبقة DAO. إنه أكثر سهولة. أنا شخصياً أوصي بهذا الحل.
ما سبق هو الحل ل mybatis تمرير معلمات متعددة التي أدخلها المحرر. آمل أن يكون ذلك مفيدًا للجميع!