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

📄 sequencegenerator.java

📁 人力资源管理系统主要包括:人员管理、招聘管理、培训管理、奖惩管理和薪金管理五大管理模块。
💻 JAVA
字号:
//$Id: SequenceGenerator.java,v 1.8.2.4 2003/10/30 13:23:57 oneovthafew Exp $package net.sf.hibernate.id;import java.io.Serializable;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.Properties;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import net.sf.hibernate.HibernateException;import net.sf.hibernate.MappingException;import net.sf.hibernate.engine.SessionImplementor;import net.sf.hibernate.type.Type;import net.sf.hibernate.util.JDBCExceptionReporter;import net.sf.hibernate.util.PropertiesHelper;import net.sf.hibernate.util.StringHelper;import net.sf.hibernate.dialect.Dialect;/** * <b>sequence</b><br> * <br> * Generates <tt>long</tt> values using an oracle-style sequence. A higher * performance algorithm is <tt>SequenceHiLoGenerator</tt>.<br> * <br> * Mapping parameters supported: sequence, parameters. * * @see SequenceHiLoGenerator * @see TableHiLoGenerator * @author Gavin King */public class SequenceGenerator implements PersistentIdentifierGenerator, Configurable {		/**	 * The sequence parameter	 */	public static final String SEQUENCE = "sequence";		/**	 * The parameters parameter, appended to the create sequence DDL.	 * For example (Oracle): <tt>INCREMENT BY 1 START WITH 1 MAXVALUE 100 NOCACHE</tt>.	 */	public static final String PARAMETERS = "parameters";	private String sequenceName;	private String parameters;	private Type type;	private String sql;		private static final Log log = LogFactory.getLog(SequenceGenerator.class);		public void configure(Type type, Properties params, Dialect dialect) throws MappingException {		this.sequenceName = PropertiesHelper.getString(SEQUENCE, params, "hibernate_sequence");		this.parameters = params.getProperty(PARAMETERS);		String schemaName = params.getProperty(SCHEMA);		if ( schemaName!=null && sequenceName.indexOf(StringHelper.DOT)<0 ) 			sequenceName = schemaName + '.' + sequenceName;		this.type = type;		sql = dialect.getSequenceNextValString(sequenceName);	}		public Serializable generate(SessionImplementor session, Object obj) throws SQLException, HibernateException {				PreparedStatement st = session.getBatcher().prepareStatement(sql);		try {			ResultSet rs = st.executeQuery();			final Serializable result;			try {				rs.next();				result = IdentifierGeneratorFactory.get(					rs, type, session, obj				);			}			finally {				rs.close();			}			log.debug("Sequence identifier generated: " + result);			return result;		}		catch (SQLException sqle) {			JDBCExceptionReporter.logExceptions(sqle);			throw sqle;		}		finally {			session.getBatcher().closeStatement(st);		}			}		public String[] sqlCreateStrings(Dialect dialect) throws HibernateException {		String ddl = dialect.getCreateSequenceString(sequenceName);		if ( parameters!=null ) ddl += ' ' + parameters;		return new String[] { ddl };	}		public String sqlDropString(Dialect dialect) throws HibernateException {		return dialect.getDropSequenceString(sequenceName);	}		public Object generatorKey() {		return sequenceName;	}	}

⌨️ 快捷键说明

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