public class StoredProcedureGenerator extends AbstractGenerator
Modifier and Type | Field and Description |
---|---|
private Map<String,ResultSetClass> |
resultSetsMap |
private static String |
SPRING_SQL_PARAMETER |
private static String |
SPRING_SQL_RETURN_RESULT_SET |
private static String |
SPRING_STORED_PROCEDURE |
Constructor and Description |
---|
StoredProcedureGenerator(ProcessingEnvironment processingEnv,
Map<String,ResultSetClass> resultSetsMap) |
Modifier and Type | Method and Description |
---|---|
private void |
addExecuteMethod(com.sun.codemodel.JCodeModel model,
com.sun.codemodel.JDefinedClass aClass,
StoredProcedureMethod storedProcedureMethod)
Generates:
public Map
|
private com.sun.codemodel.JDefinedClass |
createClass(com.sun.codemodel.JCodeModel model,
String spPackage,
String className)
Generates:
public class * extends StoredProcedure {className}
|
private void |
createConstructor(com.sun.codemodel.JCodeModel model,
com.sun.codemodel.JDefinedClass spClass,
StoredProcedureMethod storedProcedureMethod)
Generates:
public {SP_CLASS_NAME}(DataSource dataSource) {
super(dataSource, {SP_NAME});
[ declareParameter(new SqlParameter({PARAMETER_NAME}, Types.*)); ]*
[ declareParameter(new SqlReturnResultSet("#result-set-*", new *Mapper())); ]*
compile();
}
|
private void |
declareResultSets(com.sun.codemodel.JCodeModel model,
com.sun.codemodel.JBlock body,
StoredProcedureMethod storedProcedureMethod)
Generates:
[ declareParameter(new SqlReturnResultSet("#result-set-*", new *Mapper())); ]*
|
private void |
declareSqlParameters(com.sun.codemodel.JCodeModel model,
StoredProcedureMethod storedProcedureMethod,
com.sun.codemodel.JBlock body)
Generates:
[ declareParameter(new SqlParameter({PARAMETER_NAME}, Types.*)); ]*
|
private void |
generateStoredProcedure(StoredProcedureMethod storedProcedureMethod)
Example:
public class * extends StoredProcedure {
public *(DataSource dataSource) {
super(dataSource, "*");
[ declareParameter(new SqlParameter("*", Types.*)); ]*
[ declareParameter(new SqlReturnResultSet("#result-set-*", new *Mapper())); ]*
compile();
}
public Map<String, Object> execute([ * * ]*) {
return super.execute([ * ]*);
}
}
|
void |
generateStoredProcedureClasses(List<DtoClass> dtoClasses) |
private String |
getArrayType(String type) |
static String |
getSqlParameter(String type)
Retrieves the most fitting
org.springframework.jdbc.core.SqlParameter type based on the type |
private boolean |
isArrayType(Variable variable) |
private void |
multipleResultSets(com.sun.codemodel.JCodeModel model,
com.sun.codemodel.JBlock body,
String type)
If the type is a
ResultSet then multiple result-sets are declared. |
private void |
singleResultSet(com.sun.codemodel.JCodeModel model,
com.sun.codemodel.JBlock body,
StoredProcedureMethod storedProcedureMethod)
If it's a basic type then only one result-set is declared.
|
generateClass
private static final String SPRING_SQL_RETURN_RESULT_SET
private static final String SPRING_STORED_PROCEDURE
private static final String SPRING_SQL_PARAMETER
private final Map<String,ResultSetClass> resultSetsMap
public StoredProcedureGenerator(ProcessingEnvironment processingEnv, Map<String,ResultSetClass> resultSetsMap)
public void generateStoredProcedureClasses(List<DtoClass> dtoClasses) throws com.sun.codemodel.JClassAlreadyExistsException, IOException
com.sun.codemodel.JClassAlreadyExistsException
IOException
private void generateStoredProcedure(StoredProcedureMethod storedProcedureMethod) throws com.sun.codemodel.JClassAlreadyExistsException, IOException
public class * extends StoredProcedure { public *(DataSource dataSource) { super(dataSource, "*"); [ declareParameter(new SqlParameter("*", Types.*)); ]* [ declareParameter(new SqlReturnResultSet("#result-set-*", new *Mapper())); ]* compile(); } public Map<String, Object> execute([ * * ]*) { return super.execute([ * ]*); } }
com.sun.codemodel.JClassAlreadyExistsException
IOException
private com.sun.codemodel.JDefinedClass createClass(com.sun.codemodel.JCodeModel model, String spPackage, String className) throws com.sun.codemodel.JClassAlreadyExistsException
public class * extends StoredProcedure {className}
com.sun.codemodel.JClassAlreadyExistsException
private void createConstructor(com.sun.codemodel.JCodeModel model, com.sun.codemodel.JDefinedClass spClass, StoredProcedureMethod storedProcedureMethod)
public {SP_CLASS_NAME}(DataSource dataSource) { super(dataSource, {SP_NAME}); [ declareParameter(new SqlParameter({PARAMETER_NAME}, Types.*)); ]* [ declareParameter(new SqlReturnResultSet("#result-set-*", new *Mapper())); ]* compile(); }
private void declareSqlParameters(com.sun.codemodel.JCodeModel model, StoredProcedureMethod storedProcedureMethod, com.sun.codemodel.JBlock body)
[ declareParameter(new SqlParameter({PARAMETER_NAME}, Types.*)); ]*
private void declareResultSets(com.sun.codemodel.JCodeModel model, com.sun.codemodel.JBlock body, StoredProcedureMethod storedProcedureMethod)
[ declareParameter(new SqlReturnResultSet("#result-set-*", new *Mapper())); ]*
private void multipleResultSets(com.sun.codemodel.JCodeModel model, com.sun.codemodel.JBlock body, String type)
ResultSet
then multiple result-sets are declared.
Generates:
[ declareParameter(new SqlReturnResultSet("#result-set-*", new *Mapper())); ]*
private void singleResultSet(com.sun.codemodel.JCodeModel model, com.sun.codemodel.JBlock body, StoredProcedureMethod storedProcedureMethod)
Generates:
declareParameter(new SqlReturnResultSet("#result-set-0", new *Mapper()));
private void addExecuteMethod(com.sun.codemodel.JCodeModel model, com.sun.codemodel.JDefinedClass aClass, StoredProcedureMethod storedProcedureMethod)
public Mapexecute( [ * ]* ) { return super.execute( [ * ]* ) }
private boolean isArrayType(Variable variable)
public static String getSqlParameter(String type)
org.springframework.jdbc.core.SqlParameter
type based on the typetype
- the typeCopyright © 2015. All rights reserved.