La différence entre # et $ dans mybatis
1 #Traitez les données entrantes comme une chaîne et ajoutez un guillemet double aux données entrantes automatiquement. Par exemple : trier par #user_id#, si la valeur transmise est 111, alors la valeur analysée dans SQL est triée par "111". Si la valeur transmise est id, le SQL analysé est trié par "id". 🎜>
2. $ affichera directement les données entrantes et les générera en SQL. Par exemple : order by $user_id$, si la valeur transmise est 111, alors la valeur analysée dans SQL est order by user_id. Si la valeur transmise est id, le SQL analysé est order by id.
3. #Method peut empêcher l'injection SQL dans une large mesure.
4. La méthode $ ne peut pas empêcher l'injection SQL.
6. >
Empêcher l'injection SQL
<sql id="condition_where"> <isNotEmpty property="companyName" prepend=" and "> t1.company_name like #companyName# </isNotEmpty> </sql>
Le code Java est presque le même que celui d'origine. Il n'y a rien de mal à cela. Si vous trouvez cela gênant, encapsulez simplement null et '%' dans une méthode
if (!StringUtil.isEmpty(this.companyName)) { table.setCompanyName("%" + this.companyName + "%"); }
Ce qui précède est une brève présentation de mybatis qui vous est présentée par l'éditeur La différence entre # et $ dans MyBatis et la méthode pour empêcher l'injection SQL sont toutes couvertes. J'espère que tout le monde soutiendra le site Web PHP chinois ~