저는 myBatis에 대해 새삼스럽고 내 쿼리에 where 문을 넣어야합니다.MyBatis : dinamic where 조건
내 매퍼는이 방식으로 정의된다
<select id="findMyTableByWhereCondition" parameterType="map" resultMap="mytable">
SELECT *
FROM mytable m
<where>#{whereCondition}</where>
</select>
내 다오 : 시도는이 쿼리를 실행하면
public List<MyTalbe> findMyTableByWhereCondition(String whereCondition) {
Map<String, Object> param = new HashMap<String, Object>();
param.put("whereCondition", "m.name = 'Test' and m.surname= 'Test'");
return sqlSession.selectList("findMyTableByWhereCondition", param);
}
, 내가 "잘못된 관계 연산자"를 얻을 수 있습니다. 이러한 종류의 쿼리를 처리하는 가장 좋은 방법은 무엇입니까? 너무 자주 바뀔 수도 있고 매우 복잡 할 수도 있기 때문에 "where"위에 대체해야합니다. 사전에
감사
예제에서'param' 변수는 사용되지 않았습니다. 'whereCondition' 문자열을'sqlSession.selectList()'에 전달하는 것은 무엇입니까? –
API를 올바르게 사용하지 않는 것 같습니다. 이 질문의 예제를 살펴보십시오. [복잡한 객체를 사용하지 않고 SELECT에 여러 인수 전달] (http://stackoverflow.com/questions/9308210/passing-multiple-arguments-into-a-select-without- using-a-complex-object)는 WHERE 조건에서 map 요소 당 하나의 필드/값을 사용합니다. –
@MickMnemonic하지만 조건을 모두 바꿔야 할 곳은 – Skizzo