|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectjodd.db.orm.sqlgen.TemplateData
jodd.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 DbId 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.
| Field Summary | |
|---|---|
protected static jodd.cache.Cache<java.lang.String,SqlChunk> |
cache
|
protected static int |
cacheThreshold
|
protected SqlChunk |
firstChunk
|
protected SqlChunk |
lastChunk
|
protected static jodd.db.orm.sqlgen.TemplateParser |
templateParser
|
protected int |
totalChunks
|
| Fields inherited from class jodd.db.orm.sqlgen.TemplateData |
|---|
columnAliasType, columnCount, columnData, dbOrmManager, hintCount, hints, lastColumnDec, objectRefs, paramCount, parameters, tableRefs |
| Constructor Summary | |
|---|---|
DbSqlBuilder()
Creates new SQL builder. |
|
DbSqlBuilder(java.lang.String template)
|
|
| Method Summary | |
|---|---|
DbSqlBuilder |
_()
Single space shortcut. |
DbSqlBuilder |
_(java.lang.String text)
User-friendly append(String). |
protected DbSqlBuilder |
addChunk(SqlChunk chunk)
Appends chunk to the list. |
DbSqlBuilder |
aliasColumnsAs(ColumnAliasType aliasesType)
Specifies column alias type. |
DbSqlBuilder |
append(java.lang.String text)
Parses provided text into the list of chunks and appends them to the list. |
DbSqlBuilder |
appendRaw(java.lang.String text)
Simply adds text without parsing to the query. |
protected static SqlChunk |
cloneAllChunks(SqlChunk chunk)
Clones all chunks. |
DbSqlBuilder |
column(java.lang.String reference)
|
DbSqlBuilder |
column(java.lang.String tableRef,
java.lang.String columnRef)
|
DbSqlBuilder |
columnsAll(java.lang.String tableRef)
|
DbSqlBuilder |
columnsIds(java.lang.String tableRef)
|
DbSqlBuilder |
colvalue(java.lang.Object value)
|
DbSqlBuilder |
colvalue(java.lang.String name,
java.lang.Object value)
|
DbSqlBuilder |
colvalueRef(java.lang.String objectReference)
|
java.lang.String |
generateQuery()
Generates SQL query. |
java.util.Map<java.lang.String,ColumnData> |
getColumnData()
Returns an optional map of table and column names, used by ResultSetMapper. |
java.lang.String[] |
getJoinHints()
Returns join hints. |
java.util.Map<java.lang.String,ParameterValue> |
getQueryParameters()
Returns a map of SQL parameters used by generated query. |
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 |
match(java.lang.String expression)
|
DbSqlBuilder |
match(java.lang.String tableRef,
java.lang.Object value)
Creates condition part of the query only for existing columns. |
DbSqlBuilder |
match(java.lang.String tableRef,
java.lang.String objectRef)
|
DbSqlBuilder |
matchAll(java.lang.String tableRef,
java.lang.Object value)
Creates condition part of the query for all columns, including the null values. |
DbSqlBuilder |
matchAll(java.lang.String tableRef,
java.lang.String objectRef)
|
DbSqlBuilder |
matchIds(java.lang.String tableRef,
java.lang.Object value)
Creates condition part of the query for id columns |
DbSqlBuilder |
matchIds(java.lang.String tableRef,
java.lang.String objectRef)
|
DbOrmQuery |
query()
Returns DbOrmQuery instance for more fluent interface. |
DbOrmQuery |
query(DbSession session)
|
DbSqlBuilder |
ref(java.lang.String columnRef)
|
DbSqlBuilder |
ref(java.lang.String tableRef,
java.lang.String columnRef)
|
DbSqlBuilder |
refId(java.lang.String tableRef)
|
DbSqlBuilder |
reset()
Resets the builder so it can be used again. |
DbSqlBuilder |
set(java.lang.String tableRef,
java.lang.Object values)
|
DbSqlBuilder |
setAll(java.lang.String tableRef,
java.lang.Object values)
|
static void |
setCacheSize(int size)
Sets new cache size. |
static void |
setCacheThreshold(int ct)
Sets the minimal number of sql chunks that query must contains so to be cached. |
static DbSqlBuilder |
sql()
|
static DbSqlBuilder |
sql(java.lang.String template)
Template constructor that uses cache. |
DbSqlBuilder |
table(java.lang.Object entity)
|
DbSqlBuilder |
table(java.lang.Object entity,
java.lang.String alias)
|
DbSqlBuilder |
table(java.lang.String entityName)
|
DbSqlBuilder |
table(java.lang.String entityName,
java.lang.String alias)
|
DbSqlBuilder |
use(java.lang.String name,
java.lang.Object value)
Defines object reference and an object. |
DbSqlBuilder |
value(java.lang.Object value)
|
DbSqlBuilder |
value(java.lang.String name,
java.lang.Object value)
|
DbSqlBuilder |
valueRef(java.lang.String objectReference)
|
| Methods inherited from class jodd.db.orm.sqlgen.TemplateData |
|---|
addParameter, defineParameter, getColumnAliasType, getDbOrmManager, getNextParameterName, getObjectReference, getTableAlias, getTableDescriptor, lookupName, lookupObject, lookupTableRef, lookupType, registerColumnDataForColumnCode, registerColumnDataForTableRef, registerHint, registerTableReference, resetAll, resetOnPreInit, setObjectReference |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected static jodd.cache.Cache<java.lang.String,SqlChunk> cache
protected static int cacheThreshold
protected SqlChunk firstChunk
protected SqlChunk lastChunk
protected int totalChunks
protected static final jodd.db.orm.sqlgen.TemplateParser templateParser
| Constructor Detail |
|---|
public DbSqlBuilder()
public DbSqlBuilder(java.lang.String template)
| Method Detail |
|---|
public static DbSqlBuilder sql()
public static DbSqlBuilder sql(java.lang.String template)
public DbSqlBuilder reset()
public static void setCacheThreshold(int ct)
public static void setCacheSize(int size)
protected static SqlChunk cloneAllChunks(SqlChunk chunk)
public DbSqlBuilder aliasColumnsAs(ColumnAliasType aliasesType)
null when column aliases are not used.
public DbSqlBuilder use(java.lang.String name,
java.lang.Object value)
protected DbSqlBuilder addChunk(SqlChunk chunk)
public DbSqlBuilder append(java.lang.String text)
public DbSqlBuilder appendRaw(java.lang.String text)
public DbSqlBuilder _(java.lang.String text)
public DbSqlBuilder _()
public java.lang.String generateQuery()
generateQuery in interface DbSqlGeneratorpublic java.util.Map<java.lang.String,ColumnData> getColumnData()
ResultSetMapper.
May be null.
getColumnData in interface DbSqlGeneratorpublic java.util.Map<java.lang.String,ParameterValue> getQueryParameters()
DbSqlGeneratorDbSqlGenerator.generateQuery().
May be null
getQueryParameters in interface DbSqlGeneratorpublic java.lang.String[] getJoinHints()
null.
getJoinHints in interface DbSqlGeneratorpublic DbSqlBuilder table(java.lang.String entityName)
public DbSqlBuilder table(java.lang.String entityName,
java.lang.String alias)
public DbSqlBuilder table(java.lang.Object entity,
java.lang.String alias)
public DbSqlBuilder table(java.lang.Object entity)
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 ref(java.lang.String columnRef)
public DbSqlBuilder ref(java.lang.String tableRef,
java.lang.String columnRef)
public DbSqlBuilder refId(java.lang.String tableRef)
public DbSqlBuilder match(java.lang.String tableRef,
java.lang.Object value)
public DbSqlBuilder match(java.lang.String tableRef,
java.lang.String objectRef)
public DbSqlBuilder matchIds(java.lang.String tableRef,
java.lang.Object value)
public DbSqlBuilder matchIds(java.lang.String tableRef,
java.lang.String objectRef)
public DbSqlBuilder matchAll(java.lang.String tableRef,
java.lang.Object value)
public DbSqlBuilder matchAll(java.lang.String tableRef,
java.lang.String objectRef)
public DbSqlBuilder match(java.lang.String expression)
public DbSqlBuilder value(java.lang.String name,
java.lang.Object value)
public DbSqlBuilder value(java.lang.Object value)
public DbSqlBuilder valueRef(java.lang.String objectReference)
public DbSqlBuilder colvalue(java.lang.String name,
java.lang.Object value)
public DbSqlBuilder colvalue(java.lang.Object value)
public DbSqlBuilder colvalueRef(java.lang.String objectReference)
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 set(java.lang.String tableRef,
java.lang.Object values)
public DbSqlBuilder setAll(java.lang.String tableRef,
java.lang.Object values)
public DbOrmQuery query()
DbOrmQuery instance for more fluent interface.
public DbOrmQuery query(DbSession session)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||