Maison >Problème commun >Quelle est la différence entre # et $ dans mybatis
La principale différence entre # et $ dans mybatis est : #Les paramètres entrants sont affichés sous forme de chaînes dans SQL, #Cette méthode peut largement empêcher l'injection SQL ; $Les paramètres entrants sont directement affichés comme entrants dans la valeur SQL, la méthode $ ; ne peut pas empêcher l'injection SQL.
MyBatis est un excellent framework de couche de persistance qui prend en charge le SQL personnalisé, les procédures stockées et le mappage avancé. MyBatis évite presque tout le code JDBC, le réglage manuel des paramètres et la récupération des jeux de résultats. MyBatis peut utiliser du XML simple ou des annotations pour configurer et mapper les informations natives, les interfaces de mappage et les POJO Java (Plain Ordinary Java Object, objets Java ordinaires) dans les enregistrements de la base de données.
Le SQL dynamique est l'une des principales fonctionnalités de mybatis. Une fois les paramètres définis dans le mappeur transmis au XML, mybatis les analysera dynamiquement avant l'interrogation. mybatis nous fournit deux syntaxes qui prennent en charge le SQL dynamique : #{} et ${} ; transmettent tous deux dynamiquement les paramètres requis dans l'instruction SQL.
Quelle est la différence entre # et $ dans mybatis
1 Les paramètres transmis sont affichés différemment dans SQL
#Les paramètres transmis sont affichés sous forme de chaînes dans SQL (sous forme de chaîne) et un guillemet double sera ajouté aux données automatiquement transmises. Exemple : utilisez le SQL suivantselect id,name,age from student where id =#{id}Lorsque l'identifiant du paramètre que nous transmettons est "1", l'analyse du SQL ci-dessus est :
select id,name,age from student where id ="1"$ transmis Les paramètres sont directement affichés dans SqL en tant que valeur transmise Exemple : utilisez le SQL suivant
select id,name,age from student where id =${id}Lorsque l'identifiant du paramètre que nous transmettons est "1", l'analyse de le SQL ci-dessus est :
select id,name,age from student where id =12. # peut empêcher le risque d'injection SQL (épissage d'instructions) mais $ ne peut pas empêcher l'injection SQL. 3. La méthode $ est généralement utilisée pour transmettre des objets de base de données, tels que des noms de tables. 4. Dans la plupart des cas, # est souvent utilisé. Généralement, si # peut être utilisé, n'utilisez pas $; mais dans certains cas, $ doit être utilisé. lors du tri de MyBatis, vous devez faire attention, utilisez $ au lieu de #. Ce qui précède représente l’intégralité du contenu de cet article, j’espère qu’il sera utile à l’étude de chacun. Pour un contenu plus passionnant, vous pouvez prêter attention aux colonnes de didacticiels pertinentes du site Web PHP chinois ! ! !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!