SSH下重写sqlserver方言后无法创建载驱动

lilongweichao 2011-08-16 09:47:35
SSH框架下,重写sqlserver方言解决分页效率问题。但加载重写后的方言后,启动报错Cannot create JDBC driver of class 不能创建JDBC驱动,求解释
...全文
149 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lilongweichao 2011-08-16
  • 打赏
  • 举报
回复
public class FannaDialect extends SQLServerDialect {  

static int getLastIndexOfOrderBy(String sql){

return sql.toLowerCase().lastIndexOf("order by ");

}


public String getLimitString(String querySelect, int offset, int limit ){

int lastIndexOfOrderBy = getLastIndexOfOrderBy(querySelect);

// 没有 order by 或第一页的情况下

if(lastIndexOfOrderBy<0 || querySelect.endsWith(")") || offset==0)

return super.getLimitString(querySelect, 0, limit);

else {

//取出 order by 语句

String orderby = querySelect.substring(lastIndexOfOrderBy, querySelect.length());

//取出 from 前的内容

int indexOfFrom = querySelect.toLowerCase().indexOf("from");

String selectFld = querySelect.substring(0,indexOfFrom);

//取出 from 语句后的内容

String selectFromTableAndWhere = querySelect.substring(indexOfFrom, lastIndexOfOrderBy);

StringBuffer sql = new StringBuffer(querySelect.length()+100);

sql.append("select * from (") .append(selectFld)

.append(",ROW_NUMBER() OVER(").append(orderby).append(") as _page_row_num_hb ")

.append(selectFromTableAndWhere).append(" ) temp ")

.append(" where _page_row_num_hb BETWEEN ")

.append(offset+1).append(" and ").append(limit);

return sql.toString();

}

}

//使offset 参数生效

public boolean supportsLimitOffset(){

return true;

}
}

[ERROR] [org.hibernate.util.JDBCExceptionReporter] - <Cannot create JDBC driver of class 'com.manager.core.util.FannaDialect' for connect URL 'jdbc:sqlserver://127.0.0.1;databaseName=user_manager;selectMethod=cursor'>
softroad 2011-08-16
  • 打赏
  • 举报
回复
错误信息贴出来。

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧