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

📄 basicexecutor.java

📁 一个Java持久层类库
💻 JAVA
字号:
// $Id: BasicExecutor.java 9242 2006-02-09 12:37:36Z steveebersole $package org.hibernate.hql.ast.exec;import java.sql.PreparedStatement;import java.sql.SQLException;import java.util.Iterator;import org.hibernate.HibernateException;import org.hibernate.engine.QueryParameters;import org.hibernate.engine.RowSelection;import org.hibernate.engine.SessionImplementor;import org.hibernate.exception.JDBCExceptionHelper;import org.hibernate.hql.ast.HqlSqlWalker;import org.hibernate.hql.ast.QuerySyntaxException;import org.hibernate.hql.ast.SqlGenerator;import org.hibernate.param.ParameterSpecification;import org.hibernate.persister.entity.Queryable;import antlr.RecognitionException;import org.slf4j.Logger;import org.slf4j.LoggerFactory;/** * Implementation of BasicExecutor. * * @author Steve Ebersole */public class BasicExecutor extends AbstractStatementExecutor {	private static final Logger log = LoggerFactory.getLogger( BasicExecutor.class );	private final Queryable persister;	private final String sql;	public BasicExecutor(HqlSqlWalker walker, Queryable persister) {		super( walker, log );		this.persister = persister;		try {			SqlGenerator gen = new SqlGenerator( getFactory() );			gen.statement( walker.getAST() );			sql = gen.getSQL();			gen.getParseErrorHandler().throwQueryException();		}		catch ( RecognitionException e ) {			throw QuerySyntaxException.convert( e );		}	}	public String[] getSqlStatements() {		return new String[] { sql };	}	public int execute(QueryParameters parameters, SessionImplementor session) throws HibernateException {		coordinateSharedCacheCleanup( session );		PreparedStatement st = null;		RowSelection selection = parameters.getRowSelection();		try {			try {				st = session.getBatcher().prepareStatement( sql );				Iterator paramSpecifications = getWalker().getParameters().iterator();				int pos = 1;				while ( paramSpecifications.hasNext() ) {					final ParameterSpecification paramSpec = ( ParameterSpecification ) paramSpecifications.next();					pos += paramSpec.bind( st, parameters, session, pos );				}				if ( selection != null ) {					if ( selection.getTimeout() != null ) {						st.setQueryTimeout( selection.getTimeout().intValue() );					}				}				return st.executeUpdate();			}			finally {				if ( st != null ) {					session.getBatcher().closeStatement( st );				}			}		}		catch( SQLException sqle ) {			throw JDBCExceptionHelper.convert(					getFactory().getSQLExceptionConverter(),			        sqle,			        "could not execute update query",			        sql				);		}	}	protected Queryable[] getAffectedQueryables() {		return new Queryable[] { persister };	}}

⌨️ 快捷键说明

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