ij运行tomcat_IJ:工程配置Tomcat

OracleDialect是JeePlus框架中用于支持Oracle数据库分页查询的方言实现。它实现了Dialect接口,提供了supportsLimit方法以及根据offset和limit获取分页SQL的逻辑。通过对原始SQL进行处理,添加rownum行号以便于实现分页效果。此方言适用于在IntelliJ IDEA(IJ)中配置并运行Tomcat时,处理Oracle数据库的分页查询需求。
摘要由CSDN通过智能技术生成

/*** Copyright © 2015-2020 JeePlus All rights reserved.*/

packagecom.jeeplus.common.persistence.dialect.db;importcom.jeeplus.common.persistence.dialect.Dialect;/*** Oracle的方言实现

*@author*@version1.0 2010-10-10 下午12:31

*@sinceJDK 1.5*/

public class OracleDialect implementsDialect {

@Overridepublic booleansupportsLimit() {return true;

}

@Overridepublic String getLimitString(String sql, int offset, intlimit) {returngetLimitString(sql, offset, Integer.toString(offset), Integer.toString(limit));

}/*** 将sql变成分页sql语句,提供将offset及limit使用占位符号(placeholder)替换.

*

 
 

* 如mysql

* dialect.getLimitString("select * from user", 12, ":offset",0,":limit") 将返回

* select * from user limit :offset,:limit

*

*

*@paramsql 实际SQL语句

*@paramoffset 分页开始纪录条数

*@paramoffsetPlaceholder 分页开始纪录条数-占位符号

*@paramlimitPlaceholder 分页纪录条数占位符号

*@return包含占位符的分页sql*/

public String getLimitString(String sql, intoffset, String offsetPlaceholder, String limitPlaceholder) {

sql=sql.trim();boolean isForUpdate = false;if (sql.toLowerCase().endsWith(" for update")) {

sql= sql.substring(0, sql.length() - 11);

isForUpdate= true;

}

StringBuilder pagingSelect= new StringBuilder(sql.length() + 100);if (offset > 0) {

pagingSelect.append("select * from ( select row_.*, rownum rownum_ from ( ");

}else{

pagingSelect.append("select * from ( ");

}

pagingSelect.append(sql);if (offset > 0) {

String endString= offsetPlaceholder + "+" +limitPlaceholder;

pagingSelect.append(" ) row_ where rownum <= "+endString+") where rownum_ > ").append(offsetPlaceholder);

}else{

pagingSelect.append(" ) where rownum <= "+limitPlaceholder);

}if(isForUpdate) {

pagingSelect.append(" for update");

}returnpagingSelect.toString();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值