package com.dossp.ods.pub;
import com.dossp.ods.database.DataBase;
import com.dossp.ods.database.DataBaseFactory;
/**
* sql语句转换类
* @author
*
* 日期:2013-4-11
*
* 描述:
* @version V0.1
*
*/
public class StumbleSql {
private String sql;
private int startnum;
private int count;
public StumbleSql(String rt,int start,int cou){
this.sql=rt;
this.startnum=start;
this.count=cou;
}
public String resultSql(){
DataBase db = DataBaseFactory.getDataBase();
String dataBaseType = db.getDataBaseType();
if (dataBaseType != null && dataBaseType.equalsIgnoreCase("MYSQL")) {
sql = stumMysql();
}else if(dataBaseType != null && dataBaseType.equalsIgnoreCase("ORACLE")){
sql = stumOracle();
}
return sql;
}
public String stumMysql(){
String result = sql + " limit " +startnum+","+count;
return result;
}
public String stumOracle(){
String result="";
result = " select * from (select resultSet1.*,rownum as recordNo from ( ";
result = result +sql+" ) resultSet1 where rownum <="+(startnum+count)+") resultSet2 where resultSet2.recordNo >"+startnum;
return result;
}
// public static void main(String args[]){
// String ww = "select dic_id,dic_code,dic_cn_name,dic_en_name,dic_type,dic_comm,dic_query_level,dic_status from ods_dic_country ";
// ww = ww + "order by dic_query_level desc ";
// StumbleSql ST = new StumbleSql(ww,12,20);
// String result=ST.resultSql();
// System.out.println(ww);
// }
import com.dossp.ods.database.DataBase;
import com.dossp.ods.database.DataBaseFactory;
/**
* sql语句转换类
* @author
*
* 日期:2013-4-11
*
* 描述:
* @version V0.1
*
*/
public class StumbleSql {
private String sql;
private int startnum;
private int count;
public StumbleSql(String rt,int start,int cou){
this.sql=rt;
this.startnum=start;
this.count=cou;
}
public String resultSql(){
DataBase db = DataBaseFactory.getDataBase();
String dataBaseType = db.getDataBaseType();
if (dataBaseType != null && dataBaseType.equalsIgnoreCase("MYSQL")) {
sql = stumMysql();
}else if(dataBaseType != null && dataBaseType.equalsIgnoreCase("ORACLE")){
sql = stumOracle();
}
return sql;
}
public String stumMysql(){
String result = sql + " limit " +startnum+","+count;
return result;
}
public String stumOracle(){
String result="";
result = " select * from (select resultSet1.*,rownum as recordNo from ( ";
result = result +sql+" ) resultSet1 where rownum <="+(startnum+count)+") resultSet2 where resultSet2.recordNo >"+startnum;
return result;
}
// public static void main(String args[]){
// String ww = "select dic_id,dic_code,dic_cn_name,dic_en_name,dic_type,dic_comm,dic_query_level,dic_status from ods_dic_country ";
// ww = ww + "order by dic_query_level desc ";
// StumbleSql ST = new StumbleSql(ww,12,20);
// String result=ST.resultSql();
// System.out.println(ww);
// }
}
==================================调用=================================
sql += this.searchParamSql(vo);
sql += " order by t.APP_NO desc ";
sql = new StumbleSql(sql, posStart, count).resultSql();
psmt = conn.prepareStatement(sql);