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

com.agimatec.sql.query.SQLBuilder Maven / Gradle / Ivy

There is a newer version: 2.5.27
Show newest version
package com.agimatec.sql.query;

import com.agimatec.sql.SQLStatement;
import org.apache.commons.lang.StringUtils;

import java.io.IOException;
import java.util.List;
import java.util.Properties;

/**
 * Description: Radikal abgespeckte Funktionalität:
 * Diese klasse ist nur noch ein Schatten ihrer selbst!
 * Hier werden nur noch einfache Statements aus einer .properties Datei geholt, mehr
 * wenn nötig später...
* User: roman.stumm
* Date: 09.11.2007
* Time: 15:08:00
* Copyright: Agimatec GmbH */ public class SQLBuilder { private final Properties querySpecs; public SQLBuilder(String resourceName) throws IOException { this.querySpecs = new Properties(); querySpecs.load(getClass().getClassLoader().getResourceAsStream(resourceName)); } public String getResultBuilderName(String queryName) { return querySpecs.getProperty(queryName + ".resultbuilder"); } public String getSQL(String queryName) { return querySpecs.getProperty(queryName + ".sql"); } public SQLStatement generateSQL(QueryDefinition queryDefinition) { String sql = getSQL(queryDefinition.getQueryName()); SQLStatement stmt = new SQLStatement(sql); int params = StringUtils.countMatches(sql, "?"); if (queryDefinition.getQueryObject() instanceof List) { List paramValues = (List) queryDefinition.getQueryObject(); for (int i = 0; i < params; i++) { stmt.addParameter(paramValues.get(i)); } } else { for (int i = 0; i < params; i++) { stmt.addParameter(queryDefinition.getQueryObject()); } } return stmt; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy