Одной из мощных особенностей Mybatis обычно является его динамические возможности SQL. Если у вас есть опыт использования JDBC или других аналогичных рамок, вы понимаете, насколько больно в конце списка объединить строки SQL, убедитесь, что вы не можете забыть пространства или опустить запятые. Динамический SQL может тщательно справиться с этой болью.
Динамический SQL
Динамический SQL Mybatis решает боль сплайсинга SQL String.
1. Если
<SELECT ID = "findActiveBlogWithTitLike" parameterType = "blog" resultType = "blog"> select * из блога Whore = 'Active' <if test = "title! = null"> и заголовок как #{title} </if> </select> Это предложение предоставит дополнительную функцию поиска текста. Если заголовок не пройдет, то все активированные блоги будут возвращены.
Если титул пройден, то аналогичное название будет найдено.
2. Выберите, когда, в противном случае
<select id = "findActiveBlogLike" parameterType = "blog" refultype = "blog"> select * из блога везде <select> <when test = "title! = null"> и название как #{название} </when> <when test = "Автор! = null и Author.name! 1 </ights> </select> </selet> ПРИМЕЧАНИЕ. Если ни одно из вышеперечисленных условий не соответствует, он станет выбором * из блога, где
Если есть только второй матч, он станет выбором * из блога, где и заголовок, как Somelike
Очевидно, это потерпит неудачу в запросе. Чтобы решить эту проблему, Mybatis предоставляет решение.
<SELECT ID = "findActiveBloglike" parameterType = "blog" reculatype = "blog"> select * из блога везде <trim prefix = "где" prefixoverrides = "и | или"> <selet> <when test = "title! = Null"> и название, как #{название} </when> <When Test = "Author! #{author.name} </when> <extert> и weffure = 1 </inety> </select> </trim> </select>Свойство переопределения переопределено сепаратором текста трубки, а пустое пространство здесь важно. Результатом является удаление контента, указанного в переопределениях в внутреннем тексте.
3.Set
<Update id = "UpdateAuthorifNecessary" parameterType = "Author"> Update Author <Set> <if test = "userName! = null"> username =#{username}, </if> <if test = "password! = null"> password =#{password}, </if> <if test = "= null">##{if> <if test = "= null" id =#{id} </update>Та же проблема, что и выше, после оптимизации:
<Update id = "updateauthorifnecessary" parametertype = "Author"> Update Author <trim prefix = "где" prefixoverrides = ","> <set> <if test = "username! = null"> username =#{username}, </if> <if test = "= null"> password =#{/if test = "if test? null "> email =#{email} </if> </set> где id =#{id} </trim> </update>Вышесказанное является проблемой динамического сплайсинга струн SQL Mybatis, представленного вам редактором. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!