?? oracleadapter.java
字號:
package com.hongshee.ejforum.data.sql;
/**
* <p>Title: OracleAdapter.java</p>
* <p>Description: OracleAdapter</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 OracleAdapter extends SqlAdapter
{
public OracleAdapter()
{
}
public void init() throws Exception
{
// Add sequence
Section_Insert = addSeqToInsertSql(Section_Insert, "sectionID", "ejf_section_seq");
Board_Insert = addSeqToInsertSql(Board_Insert, "boardID", "ejf_board_seq");
Topic_Insert = addSeqToInsertSql(Topic_Insert, "topicID", "ejf_topic_seq");
Reply_Insert = addSeqToInsertSql(Reply_Insert, "replyID", "ejf_reply_seq");
Attach_Insert = addSeqToInsertSql(Attach_Insert, "attachID", "ejf_attach_seq");
ShortMsg_Insert = addSeqToInsertSql(ShortMsg_Insert, "msgID", "ejf_short_msg_seq");
Bookmark_Insert = addSeqToInsertSql(Bookmark_Insert, "markID", "ejf_bookmark_seq");
AdminLog_Insert = addSeqToInsertSql(AdminLog_Insert, "logID", "ejf_admin_log_seq");
ModerateLog_Insert = addSeqToInsertSql(ModerateLog_Insert, "logID", "ejf_moderator_log_seq");
ErrorLog_Insert = addSeqToInsertSql(ErrorLog_Insert, "logID", "ejf_error_log_seq");
ReportLog_Insert = addSeqToInsertSql(ReportLog_Insert, "logID", "ejf_report_log_seq");
CensorLog_Insert = addSeqToInsertSql(CensorLog_Insert, "logID", "ejf_censor_log_seq");
CreditsLog_Insert = addSeqToInsertSql(CreditsLog_Insert, "logID", "ejf_credits_log_seq");
BackupTask_Insert = addSeqToInsertSql(BackupTask_Insert, "taskID", "ejf_backup_task_seq");
// LEFT() function -> SUBSTR()
VisitStat_GetList = VisitStat_GetList.replaceAll("LEFT\\(([^,]+),", "SUBSTR($1,");
VisitStat_GetMonths = VisitStat_GetMonths.replaceAll("LEFT\\(([^,]+),", "SUBSTR($1,");
Field[] fields = super.getClass().getFields();
Object fieldValue = null;
String strValue = null;
for (int i=0; i<fields.length; i++)
{
fieldValue = fields[i].get(this);
if (fieldValue != null)
{
strValue = fieldValue.toString();
strValue = strValue.replace("NOW()", "SYSDATE");
fields[i].set(this, strValue);
}
}
}
public String addSeqToInsertSql(String sql, String primaryKey, String seqName)
{
StringBuilder sqlBuf = new StringBuilder(sql);
int p = sqlBuf.indexOf("(");
sqlBuf.insert(p+1, primaryKey + ",");
p = sqlBuf.indexOf("values(");
sqlBuf.insert(p+7, seqName + ".NEXTVAL,");
return sqlBuf.toString();
}
public String getPageQuerySql(StringBuilder sqlBuf,
int pageNo, int pageRows, int totalCount)
{
int[] pageParams = getPageQueryParams(pageNo, pageRows, totalCount);
sqlBuf.insert(0, "select * from (select page_a.*, ROWNUM as page_row from (");
sqlBuf.append(") page_a where ROWNUM <= ").append(pageParams[0])
.append(") where page_row > ").append(pageParams[1]);
return sqlBuf.toString();
}
protected int[] getPageQueryParams(int pageNo, int pageRows, int totalCount)
{
int[] result = new int[2];
int offset = pageNo * pageRows;
result[0] = offset;
result[1] = offset - pageRows;
return result;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -