Package org.fluentjdbc
Interface DatabaseTable
-
- All Superinterfaces:
DatabaseQueryable<DatabaseTableQueryBuilder>
- All Known Implementing Classes:
DatabaseTableImpl
,DatabaseTableWithTimestamps
@ParametersAreNonnullByDefault public interface DatabaseTable extends DatabaseQueryable<DatabaseTableQueryBuilder>
Provides a starting point for for fluent-jdbc with explicit Connection management
Example
DatabaseTable table = new DatabaseTableImpl("database_table_test_table"); Object id = table.insert() .setPrimaryKey("id", null) .setField("code", 1002) .setField("name", "insertTest") .execute(connection); List<Long> result = table.where("name", "insertTest").orderBy("code").listLongs(connection, "code"); table.where("id", id).setField("name", updatedName).execute(connection); table.where("id", id).delete(connection);
- See Also:
DatabaseTableImpl
,DatabaseTableWithTimestamps
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description DatabaseTableAlias
alias(String alias)
<OBJECT> DatabaseBulkDeleteBuilder<OBJECT>
bulkDelete(Iterable<OBJECT> objects)
Creates aDatabaseBulkDeleteBuilder
object to fluently generate aDELETE ...
statement for a list of objects.<OBJECT> DatabaseBulkInsertBuilder<OBJECT>
bulkInsert(Iterable<OBJECT> objects)
Creates aDatabaseBulkInsertBuilder
object to fluently generate aINSERT ...
statement for a list of objects.<OBJECT> DatabaseBulkInsertBuilder<OBJECT>
bulkInsert(Stream<OBJECT> objects)
Creates aDatabaseBulkInsertBuilder
object to fluently generate aINSERT ...
statement for a list of objects.<OBJECT> DatabaseBulkUpdateBuilder<OBJECT>
bulkUpdate(Iterable<OBJECT> objects)
Creates aDatabaseBulkUpdateBuilder
object to fluently generate aUPDATE ...
statement for a list of objects.default String
createInsertSql(List<String> fieldNames)
Creates String forINSERT INTO tableName (fieldName, fieldName, ...) VALUES (?, ?, ...)
org.fluentjdbc.DatabaseDeleteBuilder
delete()
ExecutesDELETE FROM tableName
String
getTableName()
DatabaseInsertBuilder
insert()
Creates aDatabaseInsertBuilder
object to fluently generate aINSERT ...
statementDatabaseSaveBuilder<Long>
newSaveBuilder(String idColumn, Long idValue)
Creates aDatabaseSaveBuilder
which creates aINSERT
orUPDATE
statement, depending on whether the row already exists in the database.DatabaseSaveBuilder<Long>
newSaveBuilderNoGeneratedKeys(String idColumn, Long idValue)
Use instead ofnewSaveBuilder(java.lang.String, java.lang.Long)
if the database driver does not support RETURN_GENERATED_KEYSDatabaseSaveBuilder<String>
newSaveBuilderWithString(String idColumn, String idValue)
Creates aDatabaseSaveBuilder
which creates aINSERT
orUPDATE
statement, depending on whether the row already exists in the database.DatabaseSaveBuilder<UUID>
newSaveBuilderWithUUID(String fieldName, UUID uuid)
Creates aDatabaseSaveBuilder
which creates aINSERT
orUPDATE
statement, depending on whether the row already exists in the database.DatabaseTableQueryBuilder
orderBy(String orderByClause)
Adds anorder by
clause to the query.DatabaseTableQueryBuilder
unordered()
If you haven't calledorderBy(java.lang.String)
, the results ofDatabaseListableQueryBuilder.list(java.sql.Connection, org.fluentjdbc.DatabaseResult.RowMapper<OBJECT>)
will be unpredictable.DatabaseUpdateBuilder
update()
Creates aDatabaseUpdateBuilder
object to fluently generate aUPDATE ...
statement-
Methods inherited from interface org.fluentjdbc.DatabaseQueryable
query, where, whereAll, whereExpression, whereExpression, whereExpressionWithParameterList, whereIn, whereOptional
-
-
-
-
Method Detail
-
unordered
@CheckReturnValue DatabaseTableQueryBuilder unordered()
If you haven't calledorderBy(java.lang.String)
, the results ofDatabaseListableQueryBuilder.list(java.sql.Connection, org.fluentjdbc.DatabaseResult.RowMapper<OBJECT>)
will be unpredictable. Callunordered()
if you are okay with this.
-
orderBy
@CheckReturnValue DatabaseTableQueryBuilder orderBy(String orderByClause)
Adds anorder by
clause to the query. Needed in order to list results in a predictable order.
-
alias
@CheckReturnValue DatabaseTableAlias alias(String alias)
-
getTableName
@CheckReturnValue String getTableName()
-
newSaveBuilder
@CheckReturnValue DatabaseSaveBuilder<Long> newSaveBuilder(String idColumn, @Nullable Long idValue)
Creates aDatabaseSaveBuilder
which creates aINSERT
orUPDATE
statement, depending on whether the row already exists in the database. If idValue is null,DatabaseSaveBuilder
will attempt to use the table's autogeneration of primary keys if there is no row with matching unique keys
-
newSaveBuilderWithString
@CheckReturnValue DatabaseSaveBuilder<String> newSaveBuilderWithString(String idColumn, String idValue)
Creates aDatabaseSaveBuilder
which creates aINSERT
orUPDATE
statement, depending on whether the row already exists in the database. Throws exception if idValue is null
-
newSaveBuilderNoGeneratedKeys
@CheckReturnValue DatabaseSaveBuilder<Long> newSaveBuilderNoGeneratedKeys(String idColumn, @Nullable Long idValue)
Use instead ofnewSaveBuilder(java.lang.String, java.lang.Long)
if the database driver does not support RETURN_GENERATED_KEYS
-
newSaveBuilderWithUUID
@CheckReturnValue DatabaseSaveBuilder<UUID> newSaveBuilderWithUUID(String fieldName, @Nullable UUID uuid)
Creates aDatabaseSaveBuilder
which creates aINSERT
orUPDATE
statement, depending on whether the row already exists in the database. Generates UUID.randomUUID if idValue is null and row with matching unique keys does not already exist
-
insert
@CheckReturnValue DatabaseInsertBuilder insert()
Creates aDatabaseInsertBuilder
object to fluently generate aINSERT ...
statement
-
update
@CheckReturnValue DatabaseUpdateBuilder update()
Creates aDatabaseUpdateBuilder
object to fluently generate aUPDATE ...
statement
-
delete
org.fluentjdbc.DatabaseDeleteBuilder delete()
ExecutesDELETE FROM tableName
-
bulkInsert
@CheckReturnValue <OBJECT> DatabaseBulkInsertBuilder<OBJECT> bulkInsert(Iterable<OBJECT> objects)
Creates aDatabaseBulkInsertBuilder
object to fluently generate aINSERT ...
statement for a list of objects. Example:public void saveAll(List<TagType> tagTypes, Connection connection) { tagTypesTable.bulkInsert(tagTypes) .setField("name", TagType::getName) .generatePrimaryKeys("id", TagType::setId) .execute(connection); }
-
bulkInsert
@CheckReturnValue <OBJECT> DatabaseBulkInsertBuilder<OBJECT> bulkInsert(Stream<OBJECT> objects)
Creates aDatabaseBulkInsertBuilder
object to fluently generate aINSERT ...
statement for a list of objects. Example:public void saveAll(Stream<TagType> tagTypes, Connection connection) { tagTypesTable.bulkInsert(tagTypes) .setField("name", TagType::getName) .generatePrimaryKeys("id", TagType::setId) .execute(connection); }
-
bulkDelete
@CheckReturnValue <OBJECT> DatabaseBulkDeleteBuilder<OBJECT> bulkDelete(Iterable<OBJECT> objects)
Creates aDatabaseBulkDeleteBuilder
object to fluently generate aDELETE ...
statement for a list of objects. Example:Example:
public void deleteAll(List<TagType> tagTypes, Connection connection) { tagTypesTable.bulkDelete(tagTypes) .where("id", TagType::getId) .execute(connection); }
-
bulkUpdate
@CheckReturnValue <OBJECT> DatabaseBulkUpdateBuilder<OBJECT> bulkUpdate(@Nonnull Iterable<OBJECT> objects)
Creates aDatabaseBulkUpdateBuilder
object to fluently generate aUPDATE ...
statement for a list of objects. Example:public void updateAll(List<TagType> tagTypes, Connection connection) { tagTypesTable.bulkUpdate(tagTypes) .where("id", TagType::getId) .setField("name", TagType::getName) .execute(connection); }
-
createInsertSql
@CheckReturnValue default String createInsertSql(List<String> fieldNames)
Creates String forINSERT INTO tableName (fieldName, fieldName, ...) VALUES (?, ?, ...)
-
-