|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjodd.db.orm.sqlgen.DbSqlBuilder
public class DbSqlBuilder
Nice SQL query generator that provides some automatic query generation.
Query is built by appending 'chunks' - parts of the query. These chunks may be very simple, as a simple string. However, the main reason of existence of this class are chunks that auto-generate part of the query based on provided domain object. They can be used to easily create some most common queries in an efficient way.
Although it is not necessary, use of DbIdentity
annotation boost the functionality
of this query builder.
Some chunks deals with relations between tables, so they must be aware of foreign key names. Here the naming convention is used, and even users might have their own foreign key naming convention.
Furthermore, if all queries are generated using just sql builder, it is possible to use dialects for various database types.
DbSqlTemplate
Field Summary | |
---|---|
protected ColumnAliasType |
columnAliasType
|
protected int |
columnCount
Column counter for COLUMN_CODE column alias type. |
protected java.util.Map<java.lang.String,ColumnData> |
columnData
Column or table aliases. |
protected DbOrm |
dbOrm
|
static ColumnAliasType |
DEFAULT_COLUMN_ALIAS_TYPE
Default column aliases type. |
static FkNamingConvention |
DEFAULT_FK_NAMING_CONVENTION
Default foreign key naming convention. |
protected SqlChunk |
firstChunk
|
protected static java.lang.String[] |
fkMacros
|
protected FkNamingConvention |
fkNamingConvention
|
protected SqlChunk |
lastChunk
|
protected int |
paramCount
|
protected java.util.Map<java.lang.String,java.lang.Object> |
parameters
|
protected java.util.Map<java.lang.String,java.lang.String> |
tableRefs
Table names used in this query. |
protected java.util.Map<java.lang.String,DbEntityDescriptor> |
tables
Table references used in this query. |
Constructor Summary | |
---|---|
DbSqlBuilder()
Creates new SQL builder. |
Method Summary | |
---|---|
DbSqlBuilder |
_(java.lang.String sql)
Appends raw SQL to the query. |
DbSqlBuilder |
_and()
|
DbSqlBuilder |
_between()
|
DbSqlBuilder |
_deleteFrom()
|
DbSqlBuilder |
_eq()
|
DbSqlBuilder |
_from()
|
DbSqlBuilder |
_ge()
|
DbSqlBuilder |
_gt()
|
DbSqlBuilder |
_in()
|
DbSqlBuilder |
_innerJoin()
|
DbSqlBuilder |
_join()
|
DbSqlBuilder |
_le()
|
DbSqlBuilder |
_leftJoin()
|
DbSqlBuilder |
_lt()
|
DbSqlBuilder |
_or()
|
DbSqlBuilder |
_orderBy()
|
DbSqlBuilder |
_rightJoin()
|
DbSqlBuilder |
_select()
|
DbSqlBuilder |
_selectCount()
|
DbSqlBuilder |
_space()
|
DbSqlBuilder |
_update()
|
DbSqlBuilder |
_where()
|
void |
addParameter(java.lang.String name,
java.lang.Object value)
Adds query parameter. |
DbSqlBuilder |
chunk(SqlChunk chunk)
Appends chunk to the list. |
DbSqlBuilder |
column(java.lang.String reference)
Resolves column. |
DbSqlBuilder |
column(java.lang.String tableRef,
java.lang.String columnRef)
Resolves column. |
DbSqlBuilder |
columnsAll(java.lang.String tableRef)
Resolves all columns. |
DbSqlBuilder |
columnsIds(java.lang.String tableRef)
Resolves all identity columns. |
DbSqlBuilder |
condition(java.lang.String tableRef,
java.lang.Object value)
Creates condition part of the query only for existing columns. |
DbSqlBuilder |
conditionAll(java.lang.String tableRef,
java.lang.Object value)
Creates condition part of the query for all columns, including the null values. |
DbSqlBuilder |
conditionIds(java.lang.String tableRef,
java.lang.Object value)
Creates condition part of the query for id columns |
DbSqlBuilder |
conditionSafe(java.lang.String tableRef,
java.lang.Object value)
Creates condition part of the query for all columns, including the null values. |
static DbSqlBuilder |
create()
Alternative factory. |
java.lang.String |
generateQuery()
Generates SQL query. |
ColumnAliasType |
getColumnAliasType()
Returns column alias type. |
java.util.Map<java.lang.String,ColumnData> |
getColumnData()
Returns an optional map of table and column names, used by ResultSetMapper . |
DbOrm |
getDbOrm()
Returns associated DbOrm . |
SqlChunk |
getFirstChunk()
Returns previous chunk. |
FkNamingConvention |
getFkNamingConvention()
|
SqlChunk |
getLastChunk()
Returns last chunk. |
java.lang.String |
getNextParameterName()
Returns the next auto-generated parameter name. |
java.util.Map<java.lang.String,java.lang.Object> |
getQueryParameters()
Returns a map of parameters used by generated query. |
DbEntityDescriptor |
getTableDescriptor(java.lang.String tableRef)
Returns entity descriptor for provided table reference. |
java.lang.String |
getTableName(java.lang.String tableRef)
Returns table name for provided table reference. |
DbSqlBuilder |
insert(java.lang.Class entity,
java.lang.Object values)
|
DbSqlBuilder |
insert(java.lang.Object values)
|
DbSqlBuilder |
insert(java.lang.String entityName,
java.lang.Object values)
|
DbSqlBuilder |
on(java.lang.String source,
java.lang.String target)
|
DbSqlBuilder |
onIds()
|
DbSqlBuilder |
ref(java.lang.String columnRef)
Resolves single reference. |
DbSqlBuilder |
reffk(java.lang.String source,
java.lang.Object destination)
Resolves reference foreign key joins. |
DbSqlBuilder |
refId(java.lang.String columnRef)
Resolves single identity reference. |
DbSqlBuilder |
refjoin(java.lang.String source,
java.lang.String target)
Resolves reference join. |
java.lang.String |
registerColumnDataForColumnCode(java.lang.String tableName,
java.lang.String column)
|
void |
registerColumnDataForTableRef(java.lang.String tableRef,
java.lang.String tableName)
|
java.lang.String |
registerTableReference(DbEntityDescriptor ded,
java.lang.String tableAlias)
Registers table reference for provided entity and returns used table reference. |
java.lang.String |
resolveFkName(DbEntityDescriptor sourceDed,
DbEntityDescriptor destDed)
Resolves foreign key name. |
DbSqlBuilder |
setColumnAliasType(ColumnAliasType aliasesType)
Specifies column alias type. |
DbSqlBuilder |
setFkNamingConvention(FkNamingConvention fkNamingConvention)
|
static DbSqlBuilder |
sql()
Alternative factory for building query. |
DbSqlBuilder |
table(java.lang.Class entity)
Defines table name and alias. |
DbSqlBuilder |
table(java.lang.Class entity,
java.lang.String alias)
Defines table name. |
DbSqlBuilder |
table(java.lang.Object entity)
|
DbSqlBuilder |
table(java.lang.Object entity,
java.lang.String alias)
|
DbSqlBuilder |
table(java.lang.String entityName)
Defines table and alias for entity. |
DbSqlBuilder |
table(java.lang.String entityName,
java.lang.String alias)
Defines table and alias. |
DbSqlBuilder |
updateSet(java.lang.String tableRef,
java.lang.Object values)
Resolves update set. |
DbSqlBuilder |
updateSetAll(java.lang.String tableRef,
java.lang.Object values)
Resolves update set. |
DbSqlBuilder |
value(java.lang.Object value)
|
DbSqlBuilder |
value(java.lang.String name,
java.lang.Object value)
Resolves values. |
DbSqlBuilder |
whereCriteria(DbSqlBuilder criteria)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected final DbOrm dbOrm
protected final java.util.Map<java.lang.String,DbEntityDescriptor> tables
protected final java.util.Map<java.lang.String,java.lang.String> tableRefs
protected final java.util.Map<java.lang.String,ColumnData> columnData
protected int columnCount
public static ColumnAliasType DEFAULT_COLUMN_ALIAS_TYPE
protected ColumnAliasType columnAliasType
protected final java.util.Map<java.lang.String,java.lang.Object> parameters
protected int paramCount
public static FkNamingConvention DEFAULT_FK_NAMING_CONVENTION
protected FkNamingConvention fkNamingConvention
protected static java.lang.String[] fkMacros
protected SqlChunk firstChunk
protected SqlChunk lastChunk
Constructor Detail |
---|
public DbSqlBuilder()
Method Detail |
---|
public static DbSqlBuilder create()
public static DbSqlBuilder sql()
public DbOrm getDbOrm()
DbOrm
.
public DbEntityDescriptor getTableDescriptor(java.lang.String tableRef)
public java.lang.String getTableName(java.lang.String tableRef)
public java.lang.String registerTableReference(DbEntityDescriptor ded, java.lang.String tableAlias)
public ColumnAliasType getColumnAliasType()
public DbSqlBuilder setColumnAliasType(ColumnAliasType aliasesType)
null
when column aliases are not used.
public void registerColumnDataForTableRef(java.lang.String tableRef, java.lang.String tableName)
public java.lang.String registerColumnDataForColumnCode(java.lang.String tableName, java.lang.String column)
public java.lang.String getNextParameterName()
public void addParameter(java.lang.String name, java.lang.Object value)
public FkNamingConvention getFkNamingConvention()
public DbSqlBuilder setFkNamingConvention(FkNamingConvention fkNamingConvention)
public java.lang.String resolveFkName(DbEntityDescriptor sourceDed, DbEntityDescriptor destDed)
public DbSqlBuilder chunk(SqlChunk chunk)
public SqlChunk getFirstChunk()
public SqlChunk getLastChunk()
public java.lang.String generateQuery()
generateQuery
in interface DbSqlGenerator
public java.util.Map<java.lang.String,ColumnData> getColumnData()
ResultSetMapper
.
getColumnData
in interface DbSqlGenerator
public java.util.Map<java.lang.String,java.lang.Object> getQueryParameters()
DbSqlGenerator.generateQuery()
.
getQueryParameters
in interface DbSqlGenerator
public DbSqlBuilder _(java.lang.String sql)
public DbSqlBuilder table(java.lang.String entityName)
public DbSqlBuilder table(java.lang.String entityName, java.lang.String alias)
public DbSqlBuilder table(java.lang.Class entity)
public DbSqlBuilder table(java.lang.Class entity, java.lang.String alias)
public DbSqlBuilder table(java.lang.Object entity)
public DbSqlBuilder table(java.lang.Object entity, java.lang.String alias)
public DbSqlBuilder column(java.lang.String reference)
public DbSqlBuilder column(java.lang.String tableRef, java.lang.String columnRef)
public DbSqlBuilder columnsAll(java.lang.String tableRef)
public DbSqlBuilder columnsIds(java.lang.String tableRef)
public DbSqlBuilder insert(java.lang.String entityName, java.lang.Object values)
public DbSqlBuilder insert(java.lang.Class entity, java.lang.Object values)
public DbSqlBuilder insert(java.lang.Object values)
public DbSqlBuilder ref(java.lang.String columnRef)
public DbSqlBuilder refId(java.lang.String columnRef)
public DbSqlBuilder refjoin(java.lang.String source, java.lang.String target)
public DbSqlBuilder reffk(java.lang.String source, java.lang.Object destination)
public DbSqlBuilder on(java.lang.String source, java.lang.String target)
public DbSqlBuilder onIds()
public DbSqlBuilder value(java.lang.String name, java.lang.Object value)
public DbSqlBuilder value(java.lang.Object value)
public DbSqlBuilder updateSet(java.lang.String tableRef, java.lang.Object values)
public DbSqlBuilder updateSetAll(java.lang.String tableRef, java.lang.Object values)
public DbSqlBuilder condition(java.lang.String tableRef, java.lang.Object value)
public DbSqlBuilder conditionIds(java.lang.String tableRef, java.lang.Object value)
public DbSqlBuilder conditionAll(java.lang.String tableRef, java.lang.Object value)
public DbSqlBuilder conditionSafe(java.lang.String tableRef, java.lang.Object value)
public DbSqlBuilder _deleteFrom()
public DbSqlBuilder _orderBy()
public DbSqlBuilder _and()
public DbSqlBuilder _or()
public DbSqlBuilder _in()
public DbSqlBuilder _between()
public DbSqlBuilder _select()
public DbSqlBuilder _selectCount()
public DbSqlBuilder _from()
public DbSqlBuilder _space()
public DbSqlBuilder _where()
public DbSqlBuilder _update()
public DbSqlBuilder _eq()
public DbSqlBuilder _lt()
public DbSqlBuilder _le()
public DbSqlBuilder _gt()
public DbSqlBuilder _ge()
public DbSqlBuilder _join()
public DbSqlBuilder _innerJoin()
public DbSqlBuilder _leftJoin()
public DbSqlBuilder _rightJoin()
public DbSqlBuilder whereCriteria(DbSqlBuilder criteria)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |