1.问题:mybatis 框架下 无法处理 FOR XML PATH('')函数
2.处理思路:把sql放到储存过程中
3.写存储过程:
ALTER PROCEDURE [dbo].[PR_D]
@para1 AS varchar(1000) ,
@para2 AS int ,
@sqlbegin AS varchar(max),
@string AS varchar(max) ,
@sqlend AS varchar(max)
AS
BEGIN
set @sqlbegin ='select * from table a '
set @sqlend ='group by a.name'
if @para1 <>'' and @distributionAreaID is not null
SET @string =@string+ ' and a.para2 ='+''''+@para1 +''''
if @para2 >0
SET @string =@string+ ' and a.para2 ='+convert(varchar,@para2 )
EXEC( @sqlbegin+@string+@sqlend )
END
4.mybatis 调用:
<select id="name" resultType="entity">
EXEC PR_D @para1 =#{para1 },@para1 =#{para1 } ,@sqlbegin='',@string='',@sqlend=''
</select>