服务层中传递参数的最佳方法

时间:2018-06-03 04:43:48

标签: spring-mvc

我有一个学生信息表,其中包含列名,性别,班级,课程,等级等 我想实现一个过滤器,需要按名称,按类别,按类别,按等级进行搜索....

我通过查询数据库使用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层中,一个函数可以处理所有的pass参数, 喜欢:

列表搜索(someParam);

我想出了一个在mybatis中使用的想法。

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

我不确定这是否适合接近。

1 个答案:

答案 0 :(得分:0)

是的,它可以

你可以做到这一点。请参阅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>