mycat系列-对SQL Server的支持
配置支持SQL Server
修改conf下的配置schema.xml文件中的以下内容:
配置dataHost
在节点下在新增一个sqlserver的连接
<dataHost name="sqlserver1" maxCon="1000" minCon="1" balance="0" writeType="0" dbType="sqlserver" dbDriver="jdbc"><heartbeat></heartbeat><connectionInitSql></connectionInitSql><writeHost host="hostM1" url="jdbc:sqlserver://localhost:1433" user="sa" password="sa" ></writeHost></dataHost>
1.dbDriver一定为jdbc,dbType代表数据库类型,可以为sqlerver,oracle,mongodb
2.url地址是jdbc连接的地址,和一般开发java web的jdbc.url地址一致,user,password是用户名和密码
3.是心跳包的查询语句,可以为空
4.是连接sqlserver的初始化语句
5.需要mssqljdbc*.jar包(其它版本也支持)
6.如果需要支持多个数据库,可以不用指定数据库名,在dataNode中指定
配置表:
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
之后加上表的配置:
<table name="people" primaryKey="_ID" dataNode="dn4" needAddLimit="false"/>
needAddLimit 不自动在sql语句中使用limit
新增dataNode配置:
<dataNode name="dn4" dataHost="sqlserver1" database="test1" /><dataNode name="dn5" dataHost="sqlserver1" database="test2" />
row_number分页
支持row_number和row_number与top结合2种分页,另外支持top限制最大条数。
支持limit语法自动翻译原生分页,详见5.9 limit分页自动转换。
以下分页等价limit 5,10
SELECT *FROM (SELECT sid, ROW_NUMBER() OVER (ORDER BY sid DESC) AS ROWNUM FROM test WHERE sts <> 'N' ) XXWHERE ROWNUM > 5 AND ROWNUM <= 15
row_number与top结合分页
以下分页等价limit 5,10
select * from ( select row_number()over(order by tempColumn)tempRowNumber,* from ( select top 15 tempColumn=0, sid from test where sts<>'N' order by sid )t )tt where tempRowNumber>5;
top限制最大条数
以下语法控制查询结果最多5条
select top 5 * from test where sts<>'N' order by sid