Лучший способ передать параметр в сервисном слое - PullRequest
0 голосов
/ 03 июня 2018

У меня есть таблица информации о студентах с колонкой Имя, пол, класс, курс, класс и т. Д. Я хотел бы реализовать фильтр, требующий поиска по имени, по классу, по курсу, по классу ....

Я использую mybatis, запрашивая БД .. запрос очень прост.Но мне нужно написать несколько запросов для реализации этих функций поиска.

Select * FROM TB where name =#{name} , 

Select * FROM TB where class =#{class},

Select * FROM TB where course =#{course},

Select * FROM TB where grade =#{grade}

....

На уровне сервиса необходимо реализовать несколько функций.

List<Student> getStudentByName(String name);

List<Student> getStudentByCourse(String course);
... bla bla ...

Вопрос:

Это простой способ реализовать это требование?

то, что я ожидал, это:

на уровне @service, функция может обрабатывать все параметры передачи, например:

Поиск по списку (someParam);

У меня возникла идея использовать mybatis.

SELECT * FROM TB WHERE 1 =1 
<if name!=null>
AND name = #{name}
</if>

Я не уверен, что это хорошая практика для приближения.

1 Ответ

0 голосов
/ 05 июня 2018

Да, это может

Вы можете сделать это.см. приведенный ниже синтаксис в XML:

SELECT * FROM TB WHERE 1 = 1 
<if name != null and name!= ""'>
   AND name = #{name}
</if>
<if class != null and class!= ""'>
   AND class = #{class}
</if>
<if course != null and course!= ""'>
   AND course = #{course}
</if>
<if grade != null and grade != ""'>
   AND grade = #{grade}
</if>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...