All Downloads are FREE. Search and download functionalities are using the official Maven repository.

test.googlecode.genericdao.databaseinitializer.SqlUpdateStatementBuilder Maven / Gradle / Ivy

The newest version!
package test.googlecode.genericdao.databaseinitializer;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map.Entry;

public class SqlUpdateStatementBuilder extends SqlStatementBuilder {
	
	@Override
	protected void buildSql() {
		beginSql();
		appendTableName();
		appendSetClause();
		appendWhereClause();
	}
	
	protected void beginSql() {
		sql.append("UPDATE ");
	}
	
	protected void appendSetClause() {
		List assignments = new ArrayList(); 
		for (Entry entry : columnValues) {
			assignments.add(entry.getKey() + " = " + parameterPlaceholderOrNULL(entry.getValue()));
		}
		
		sql.append(" SET ");
		appendCommaDelimitedList(assignments);
	}

	protected void appendWhereClause() {
		List whereConditions = new ArrayList(); 
		for (Entry entry : keyValues) {
			whereConditions.add(entry.getKey() + " = ?");
		}
		
		if (!whereConditions.isEmpty()) {
			sql.append(" WHERE ");
			appendDelimitedList(whereConditions, " AND ");
		}
	}

	@Override
	protected void setStatementParameterValues() throws SQLException {
		super.setStatementParameterValues();
		setKeyValueParameters();
	}
	
	protected void setKeyValueParameters() throws SQLException {
		setParameters(keyValues);
	}
	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy