版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/luo4105/article/details/51174257
以前项目都是mysql加mybatis的,新的一个项目客户要求用sqlserver,好在大部分sql都一样,不过还是有些sql语句不同,比如分页
首先看看sqlserver的分页原理
例:10到20的数据分页
SELECT top 10 *
from tablename
where
id not in (
select top 10 id from tablename
)
order by id
在mybatis中,用pagesize,pagestart去替换10,20
SELECT top ${pagesize} *
from tablename
where
id not in (
select top ${pagestart} id from 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 这样就没错