⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 select.java

📁 一个Java持久层类库
💻 JAVA
字号:
//$Id: Select.java 7143 2005-06-15 02:57:03Z oneovthafew $package org.hibernate.sql;import org.hibernate.LockMode;import org.hibernate.dialect.Dialect;import org.hibernate.util.StringHelper;/** * A simple SQL <tt>SELECT</tt> statement * @author Gavin King */public class Select {	private String selectClause;	private String fromClause;	private String outerJoinsAfterFrom;	private String whereClause;	private String outerJoinsAfterWhere;	private String orderByClause;	private String groupByClause;	private String comment;	private LockMode lockMode;	public final Dialect dialect;	private int guesstimatedBufferSize = 20;		public Select(Dialect dialect) {		this.dialect = dialect;	}	/**	 * Construct an SQL <tt>SELECT</tt> statement from the given clauses	 */	public String toStatementString() {		StringBuffer buf = new StringBuffer(guesstimatedBufferSize);		if ( StringHelper.isNotEmpty(comment) ) {			buf.append("/* ").append(comment).append(" */ ");		}				buf.append("select ").append(selectClause)				.append(" from ").append(fromClause);				if ( StringHelper.isNotEmpty(outerJoinsAfterFrom) ) {			buf.append(outerJoinsAfterFrom);		}				if ( StringHelper.isNotEmpty(whereClause) || StringHelper.isNotEmpty(outerJoinsAfterWhere) ) {			buf.append(" where " );			// the outerJoinsAfterWhere needs to come before where clause to properly			// handle dynamic filters			if ( StringHelper.isNotEmpty(outerJoinsAfterWhere) ) {				buf.append(outerJoinsAfterWhere);				if ( StringHelper.isNotEmpty(whereClause) ) {					buf.append( " and " );				}			}			if ( StringHelper.isNotEmpty(whereClause) ) {				buf.append(whereClause);			}		}				if ( StringHelper.isNotEmpty(groupByClause) ) {			buf.append(" group by ").append(groupByClause);		}				if ( StringHelper.isNotEmpty(orderByClause) ) {			buf.append(" order by ").append(orderByClause);		}				if (lockMode!=null) {			buf.append( dialect.getForUpdateString(lockMode) );		}				return dialect.transformSelectString( buf.toString() );	}	/**	 * Sets the fromClause.	 * @param fromClause The fromClause to set	 */	public Select setFromClause(String fromClause) {		this.fromClause = fromClause;		this.guesstimatedBufferSize += fromClause.length();		return this;	}	public Select setFromClause(String tableName, String alias) {		this.fromClause = tableName + ' ' + alias;		this.guesstimatedBufferSize += fromClause.length();		return this;	}	public Select setOrderByClause(String orderByClause) {		this.orderByClause = orderByClause;		this.guesstimatedBufferSize += orderByClause.length();		return this;	}	public Select setGroupByClause(String groupByClause) {		this.groupByClause = groupByClause;		this.guesstimatedBufferSize += groupByClause.length();		return this;	}	public Select setOuterJoins(String outerJoinsAfterFrom, String outerJoinsAfterWhere) {		this.outerJoinsAfterFrom = outerJoinsAfterFrom;		// strip off any leading 'and' token		String tmpOuterJoinsAfterWhere = outerJoinsAfterWhere.trim();		if ( tmpOuterJoinsAfterWhere.startsWith("and") ) {			tmpOuterJoinsAfterWhere = tmpOuterJoinsAfterWhere.substring(4);		}		this.outerJoinsAfterWhere = tmpOuterJoinsAfterWhere;		this.guesstimatedBufferSize += outerJoinsAfterFrom.length() + outerJoinsAfterWhere.length();		return this;	}	/**	 * Sets the selectClause.	 * @param selectClause The selectClause to set	 */	public Select setSelectClause(String selectClause) {		this.selectClause = selectClause;		this.guesstimatedBufferSize += selectClause.length();		return this;	}	/**	 * Sets the whereClause.	 * @param whereClause The whereClause to set	 */	public Select setWhereClause(String whereClause) {		this.whereClause = whereClause;		this.guesstimatedBufferSize += whereClause.length();		return this;	}	public Select setComment(String comment) {		this.comment = comment;		this.guesstimatedBufferSize += comment.length();		return this;	}	public LockMode getLockMode() {		return lockMode;	}		public Select setLockMode(LockMode lockMode) {		this.lockMode = lockMode;		return this;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -