mybatis,sqlserver分页

以前项目都是mysql加mybatis的,新的一个项目客户要求用sqlserver,好在大部分sql都一样,不过还是有些sql语句不同,比如分页


首先看看sqlserver的分页原理

例:10到20的数据分页

 SELECT top 10 * 
 	from tablename
 where
 	id not in (
 		select top 10 id form tablename
 	)
 order by id


在mybatis中,用pagesize,pagestart去替换10,20

SELECT top ${pagesize} * 
 	from tablename
 where
 	id not in (
 		select top ${pagestart} id form tablename
 	)
 order by id


 常见异常
 1.sqlserver @P0 附近有语法错误
 把#{var}改成${var}  
 原因
 #{var}传入参数会被装饰成 "var"可以防止sql注入问题
 比如num=10,上面sql语句就会被解释成SELECT TOP "10" FROM tablename 这样就会报错
 ${var}传入参数会直接显示 会有发生sql注入问题
 同样num=10,上面sql语句就会被解释成SELECT TOP 10 FROM   这样就没错  

你可能感兴趣的:(mybatis,sqlserver,sqlserver分页,P0)