在Java应用中,与SqlServer数据库匹配使用,在公司应用中无法避免,但是Java程序员都知道Java和SqlServer与MySQL差别很大,首页在Java中与SqlServer连接,采用的是tcp/ip协议进行连接,这就导致了在连接上就要消耗很多时间,在现在的项目中,初期的时候没有写循环连接数据库,会出现,一两分钟不连接数据库,当再次连接的时候就会报错一次,然后才能再次连接,所以在系统中就写了一个定时循环,每隔5秒就访问一下数据库,以保证使用时不会出现两次访问的问题,
也是由于这种原因,在以后的代码开发中就尽量减少与数据库的连接,比如在涉及到一些逻辑运算的时候,如果需要多次查询数据,这时最好能在xml中以sql语句的方式进行处理,才是最好,这只是说在某些情况允许下,采用这种方法比较好,但不建议将所有service的功能搬到xml去编写.比如向涉及到更新或者保存数据额时候要先检查数据库中是否存在,这种就比较适合在xml中使用sql语句进行编写,这样就会减少与数据库的通讯,
总的来说,就是讲xml当成一个简易的存储过程进行使用
下面贴一段SqlServer分页语句的编写
<sql id="SQL语句">
SQL语句编写
</sql>
declare @maxId int,@maxId2 int;
set @maxid=(
select max(idh) from (
//通过计算获取,分页页数*每页记录数
select top ${page}
ROW_NUMBER() OVER (
ORDER BY t1.time desc
) as idh
from (
<include refid="SQL语句"/>
) as t1
) as t);
set @maxId2=@maxId;
<if test="page==1">
set @maxId=@maxId-1;
</if>
//rows 每页记录数
select top ${rows} t.* from (
select ROW_NUMBER() OVER (
ORDER BY t1.time desc
) as idh, t1.*
from (
<include refid="SQL语句"/>
) as t1
) as t where t.idh>@maxid