abstractroadinspectiondaojdbc.java

来自「Java的框架」· Java 代码 · 共 182 行

JAVA
182
字号
package mcaps.apps.prrm.roadinspection.dao.jdbc;

import java.util.List;

import mcaps.apps.prrm.roadinspection.dao.RoadInspectionDAO;
import mcaps.apps.prrm.roadinspection.dao.jdbc.query.RoadInspectionByIdQuery;
import mcaps.apps.prrm.roadinspection.dao.jdbc.query.RoadInspectionInsert;
import mcaps.apps.prrm.roadinspection.dao.jdbc.query.RoadInspectionQuery;
import mcaps.apps.prrm.roadinspection.dao.jdbc.query.RoadInspectionUpdate;
import mcaps.apps.prrm.roadinspection.dao.util.RoadInspectionField;
import mcaps.apps.prrm.roadinspection.dao.util.RoadInspectionQueryUtil;
import mcaps.apps.prrm.roadinspection.model.RoadInspection;
import mcap.core.base.dao.jdbc.SQLDelete;
import mcap.core.base.dao.util.SortOrder;
import mcap.core.base.model.BaseTimeObject;
import mcaps.apps.prrm.util.TableNameConstants;

import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import org.springframework.jdbc.support.incrementer.DataFieldMaxValueIncrementer;

/**
 * This class provides the abstract dao implementation for road inspection using
 * JDBC. The dao operation like query, insert, update, delete, archive and purge
 * are supported.
 * 
 * @author jov
 * @date Oct 20, 2005
 * @version 1.0.1.0
 */
public abstract class AbstractRoadInspectionDAOJdbc extends JdbcDaoSupport implements RoadInspectionDAO {

	//Static Query
	private RoadInspectionQuery roadInspectionQuery;
	private RoadInspectionByIdQuery roadInspectionByIdQuery;
	private RoadInspectionInsert roadInspectionInsert;
	private RoadInspectionUpdate roadInspectionUpdate;

	private SQLDelete roadInspectionDelete;
		
	//Data Incrementer	
	private DataFieldMaxValueIncrementer roadInspectionIncrementer;
	
	/* (non-Javadoc)
	 * @see org.springframework.dao.support.DaoSupport#initDao()
	 */
	public void initDao() {
		this.roadInspectionQuery = new RoadInspectionQuery(
														getDataSource(),
														new int[]{RoadInspectionField.CREATIONTIME,RoadInspectionField.SEVERITY},
														new SortOrder[]{SortOrder.ASCENDING,SortOrder.ASCENDING}
													);
		this.roadInspectionByIdQuery = new RoadInspectionByIdQuery(getDataSource(),RoadInspectionField.ID,SortOrder.ASCENDING);
		this.roadInspectionInsert = new RoadInspectionInsert(getDataSource());
		this.roadInspectionInsert.setIncrementer(this.roadInspectionIncrementer);
		this.roadInspectionUpdate = new RoadInspectionUpdate(getDataSource());
		
		initRoadInspectionDelete();
	}
	
	//========================================================================================

	/**
	 * Initialise the static query object for road inspection delete operation. 
	 */
	private void initRoadInspectionDelete(){
		String roadInspectionTable = TableNameConstants.ROADINSPECTION_TABLENAME;
		
		String whereClause = null;
		StringBuffer sb = new StringBuffer();
		int paramTypes[] = null;
		
		sb = new StringBuffer();
		sb.append(RoadInspectionField.FIELDS[RoadInspectionField.ID]).append(" ")
			.append("= ?");
		whereClause = sb.toString();
			paramTypes = new int[]{
											RoadInspectionField.FIELDTYPES[RoadInspectionField.ID]};
			
		roadInspectionDelete = new SQLDelete(getDataSource(),roadInspectionTable,
																					whereClause,paramTypes);
	}

//=====================================================================================================
//	DATA INCREMENTER
//=====================================================================================================
	
	/**
	 * Sets the roadInspectionIncrementer.
	 * @param roadInspectionIncrementer The roadInspection incrementer to set.
	 */
	public void setRoadInspectionIncrementer(DataFieldMaxValueIncrementer roadInspectionIncrementer){
		this.roadInspectionIncrementer = roadInspectionIncrementer;
	}

//=====================================================================================================
//	OPERATION METHODS, IMPLEMENTING THE ROADDEFECTDAO INTERFACE
//=====================================================================================================
	
	/* (non-Javadoc)
	 * @see mcaps.apps.prrm.roadinspection.dao.RoadInspectionDAO#getRoadInspection(java.lang.Integer)
	 */
	public RoadInspection getRoadInspection(Integer roadInspectionID) throws DataAccessException {
		Object[] params = new Object[]{roadInspectionID};
		List roadInspectionList = roadInspectionByIdQuery.execute(params);
		if(roadInspectionList.size() > 0) {
	    RoadInspection roadInspection = (RoadInspection)roadInspectionList.get(0);
	    return roadInspection;
		}  
	  return null;		
	}

	//========================================================================================

	/* (non-Javadoc)
	 * @see mcaps.apps.prrm.roadinspection.dao.RoadInspectionDAO#getAllRoadInspections()
	 */
	public List getAllRoadInspections() throws DataAccessException {
		return roadInspectionQuery.execute();
	}

	//========================================================================================

	/* (non-Javadoc)
	 * @see mcaps.apps.prrm.roadinspection.dao.RoadInspectionDAO#getRoadInspections(mcaps.apps.prrm.roadinspection.model.RoadInspection)
	 */
	public List getRoadInspections(RoadInspection roadInspection) throws DataAccessException {
		Object[] obj = RoadInspectionQueryUtil.getWhereClauseAndParameterTypes(roadInspection);
		Object[] params = RoadInspectionQueryUtil.getParameters(roadInspection);
		RoadInspectionQuery roadInspectionQuery = new RoadInspectionQuery(getDataSource(),(String)obj[0],(int[])obj[1]);
		return roadInspectionQuery.execute(params);
	}

	//========================================================================================

	/* (non-Javadoc)
	 * @see mcaps.apps.prrm.roadinspection.dao.RoadInspectionDAO#saveRoadInspection(mcaps.apps.prrm.roadinspection.model.RoadInspection)
	 */
	public void saveRoadInspection(RoadInspection roadInspection) throws DataAccessException {
		if (roadInspection.isNew()){
			roadInspectionInsert.insert(roadInspection);
		}else{
			roadInspectionUpdate.update(roadInspection);
			
		}
	}

	//========================================================================================

	/* (non-Javadoc)
	 * @see mcaps.apps.prrm.roadinspection.dao.RoadInspectionDAO#removeRoadInspection(java.lang.Integer)
	 */
	public void removeRoadInspection(RoadInspection roadInspection) throws DataAccessException {
		roadInspectionDelete.delete(new Object[]{roadInspection.getId()});
	}
	
	//========================================================================================

	/**
	 * Retrieve and set the identity for the given entity,
	 * assuming that the last executed insert affected that entity
	 * and generated an auto-increment value for it.
	 * @param entity the entity object to retrieved the id for
	 * @see #getIdentityQuery
	 */
	protected void retrieveIdentity(BaseTimeObject entity) {
		entity.setId(new Integer(getJdbcTemplate().queryForInt(getIdentityQuery())));
	}

	//========================================================================================

	/**
	 * Return the identity query for the particular database:
	 * a query that can be used to retrieve the id of a row
	 * that has just been inserted.
	 * @return the identity query
	 */
	protected abstract String getIdentityQuery();

	//========================================================================================
}

⌨️ 快捷键说明

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