roadinspectioninsert.java

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

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

import mcaps.apps.prrm.roadinspection.dao.util.RoadInspectionField;
import mcaps.apps.prrm.roadinspection.model.RoadInspection;
import mcaps.apps.prrm.util.TableNameConstants;

import javax.sql.DataSource;

import org.springframework.jdbc.object.SqlUpdate;
import org.springframework.jdbc.core.SqlParameter;
import org.springframework.jdbc.support.incrementer.DataFieldMaxValueIncrementer;

/**
 * This class extends SqlUpdate to perform JDBC Insert 
 * operation to the road inspection table. This class is 
 * used to set the precompiled INSERT SQL statement and
 * to execute the INSERT SQL statement.
 * 
 * @author jov
 * @date Oct 12, 2005
 * @version 1.0.1.0
 */
public class RoadInspectionInsert extends SqlUpdate {

	private DataFieldMaxValueIncrementer incrementer;
	
	/**
	 * Default constructor that accepts a datasource object to allow
	 * the connection to the database for insert operation.
	 * @param ds the datasource object
	 */
	public RoadInspectionInsert(DataSource ds){
		setDataSource(ds);
		setDefaultParameterTypes();
		setSql(getDefaultSQL());
		compile();
	}
	
	/**
	 * Sets the incrementer.
	 * @param incrementer The incrementer to set.
	 */
	public void setIncrementer(DataFieldMaxValueIncrementer incrementer){
		this.incrementer = incrementer;
	}

	/**
	 * Execute the JDBC insert operation using the values as
	 * in the contact object
	 * @param contact the object the holds the field values to be inserted
	 * @return returns the id in which created for the newly 
	 * inserted record
	 */
	public Integer insert(RoadInspection roadInspection){
//	TODO Exception code If not initialized throw excp
		System.out.print("roadInspection.getRepairRequired() : " + roadInspection.getRepairRequired());
		Integer id = new Integer(incrementer.nextIntValue());
		Object[] paramValues = new Object[]{
				id,
				roadInspection.getRoadDefectId(),
				roadInspection.getTaskId(),
				roadInspection.getDefectType(),				
				roadInspection.getDefectDetail(),
				roadInspection.getRoadName(),
				roadInspection.getLocation(),
				roadInspection.getSeverity(),
				roadInspection.getSummary(),
				roadInspection.getSolution(),
				roadInspection.getRepairRequired(),
				roadInspection.getCreationTime(),
				roadInspection.getLastModifiedTime()
		};
		super.update(paramValues);
		roadInspection.setId(id); 
		return id;
	}
	
	/**
	 * Generates the defact SQL statement.
	 * @return the default sql statement.
	 */
	private String getDefaultSQL(){
		StringBuffer sb = new StringBuffer();
		sb.append("INSERT INTO ")
			.append(TableNameConstants.ROADINSPECTION_TABLENAME)
			.append(" (");
		
		int fieldNum = RoadInspectionField.MAX;
		for (int i = 0; i<=fieldNum; i++){
			sb.append(RoadInspectionField.FIELDS[i]);
			if (i < fieldNum){
				sb.append(", ");
			}
		}

		sb.append(") ")
			.append("VALUES ")
			.append("(");
			
		for (int i = 0; i<=fieldNum; i++){
			sb.append("?");
			if (i < fieldNum){
				sb.append(", ");
			}
		}
			
		sb.append(")");
		return sb.toString();
	}
		
	/**
	 * Sets the default parameter types.
	 */
	protected void setDefaultParameterTypes(){	
		for (int i=0; i <= RoadInspectionField.MAX; i++){
			declareParameter(new SqlParameter(RoadInspectionField.FIELDTYPES[i]));			
		}
	}
	
}

⌨️ 快捷键说明

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