我有一个学生信息表,其中包含列名,性别,班级,课程,等级等 我想实现一个过滤器,需要按名称,按类别,按类别,按等级进行搜索....
我通过查询数据库使用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>
我不确定这是否适合接近。
答案 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>