2017-10-10 4 views
1

mybatis와 함께 봄용 웹 프로젝트를 진행하고 있습니다. 나는 통과 할 수Mybatis : mapper.xml에 문자열로 concat <refid /> 포함하는 방법

 insert into user_10 ... 

: 나는 내가 좋아하는 일을 수행하려는 경우 나, exmaple에 대한

<sql id="TableNameBase">user_</sql> 

    <insert id="insert"> 
    INSERT INTO <include refid="TableNameBase">#{id} 
    ... 

이, user_12

mapper.xml에서, user_10, user_11 같은 많은 분할 테이블이 id = 10 하지만 위의 <include refid="TableNameBase">#{id}은 예상보다

대신 할 수 있습니까?

+0

문제 공백 내에 :

<sql id="user_table"> user_#{id} </sql> 

그런 다음 다음 예에서와 같이 매개 변수를 전달하여 사용할 수 있습니다 : 당신이 할 수있는 일 이 같은 파라 메트릭 테이블 이름을 정의하는 것입니다 'user_10' tablename? – araknoid

+0

그 것처럼 보입니다. – Lily

답변

0

태그가 공백을 앞뒤로 추가하는 것으로 보입니다.

<insert id="insert"> 
    INSERT INTO <include refid="user_table"/> 
    ... 
+0

다른 sql 문에는'table_name = '이 있지만, 작은 따옴표 ''가 없으므로 좋지 않습니다. 나는'table_name = '''을 시도했지만,'table_name = 'user_10''은 가져 왔지만'table_name = 'user_10''이 아닌데, 어떻게 처리해야합니까? – Lily

+0

필자가 볼 수있는 한,이 코드에서'table_name = ''' '앞에 공백이 있습니다. 그런데이 코드는 where 조건의 일부로 보이는 것이므로 (질문의 시나리오가 아님) 매개 변수 값으로 쿼리에 전달하고 매개 변수 값에 include를 사용하지 않는 것이 좋습니다. – araknoid