sqlserveradapter.java
来自「EasyJForum 是一个基于 Java 技术的免费社区论坛软件系统」· Java 代码 · 共 76 行
JAVA
76 行
package com.hongshee.ejforum.data.sql;
/**
* <p>Title: SqlServerAdapter.java</p>
* <p>Description: SqlServerAdapter</p>
* <p>Copyright: Hongshee Software (c) 2007</p>
* @author jackie du
* @version 1.0
*/
import java.lang.reflect.Field;
import com.hongshee.ejforum.data.SqlAdapter;
public class SqlServerAdapter extends SqlAdapter
{
public SqlServerAdapter()
{
}
public void init() throws Exception
{
Field[] fields = super.getClass().getFields();
Object fieldValue = null;
for (int i=0; i<fields.length; i++)
{
fieldValue = fields[i].get(this);
if (fieldValue != null)
{
fields[i].set(this, fieldValue.toString().replace("NOW()", "GETDATE()"));
}
}
}
public String getPageQuerySql(StringBuilder sqlBuf,
int pageNo, int pageRows, int totalCount)
{
if (pageNo == 1)
{
int p = sqlBuf.indexOf("select");
sqlBuf.insert(p+6, " TOP " + pageRows);
return sqlBuf.toString();
}
else
{
int[] pageParams = getPageQueryParams(pageNo, pageRows, totalCount);
int p = sqlBuf.indexOf("order by");
String orderBy = sqlBuf.substring(p);
String descOrderBy =
orderBy.replace("ASC","ASC1").replace("DESC", "ASC").replace("ASC1","DESC");
p = sqlBuf.indexOf("select");
sqlBuf.insert(p+6, " TOP " + pageParams[1]);
sqlBuf.insert(0, "select * from (select TOP " + pageParams[0] + " * from (");
sqlBuf.append(") page_a ").append(descOrderBy).append(") page_b ").append(orderBy);
return sqlBuf.toString();
}
}
protected int[] getPageQueryParams(int pageNo, int pageRows, int totalCount)
{
int[] result = new int[2];
int offset = pageNo * pageRows;
if (offset <= totalCount)
result[0] = pageRows;
else
{
result[0] = totalCount % pageRows;
if (result[0] == 0)
result[0] = pageRows;
}
result[1] = offset;
return result;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?