Package com.exasol.dbbuilder.dialects
Class AbstractImmediateDatabaseObjectWriter
- java.lang.Object
-
- com.exasol.dbbuilder.dialects.AbstractImmediateDatabaseObjectWriter
-
- All Implemented Interfaces:
DatabaseObjectWriter
- Direct Known Subclasses:
ExasolImmediateDatabaseObjectWriter
,MySqlImmediateDatabaseObjectWriter
,OracleImmediateDatabaseObjectWriter
,PostgreSqlImmediateDatabaseObjectWriter
public abstract class AbstractImmediateDatabaseObjectWriter extends Object implements DatabaseObjectWriter
This class contains common logic for writers that persist database objects.
-
-
Field Summary
Fields Modifier and Type Field Description protected Connection
connection
Connection
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractImmediateDatabaseObjectWriter(Connection connection)
Create a new instance of anAbstractImmediateDatabaseObjectWriter
.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected String
createCommaSeparatedObjectPrivilegeList(ObjectPrivilege[] privileges)
Join the givenObjectPrivilege
s with a,
.protected String
createCommaSeparatedSystemPrivilegeList(GlobalPrivilege[] privileges)
Join a given array forGlobalPrivilege
s with,
.void
drop(Table table)
Drop a table.void
drop(User user)
Drop a user.void
executeSqlFile(Path... sqlFiles)
Execute the contents of a SQL script file.protected abstract String
getQuotedColumnName(String columnName)
Get a quoted column name.void
truncate(Table table)
Truncate a table.void
write(Schema schema)
Create a schema in the database.void
write(Table table)
Create a table in the database.void
write(Table table, Stream<List<Object>> rows)
Bulk write data to a database table.void
write(User user, DatabaseObject object, ObjectPrivilege... privileges)
Grant privileges to a database object to a user.protected void
writeToObject(DatabaseObject object, String sql, Object... parameters)
Write a given object to the database.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.exasol.dbbuilder.dialects.DatabaseObjectWriter
drop, write, write
-
-
-
-
Field Detail
-
connection
protected final Connection connection
Connection
-
-
Constructor Detail
-
AbstractImmediateDatabaseObjectWriter
protected AbstractImmediateDatabaseObjectWriter(Connection connection)
Create a new instance of anAbstractImmediateDatabaseObjectWriter
.- Parameters:
connection
- JDBC connection
-
-
Method Detail
-
writeToObject
protected void writeToObject(DatabaseObject object, String sql, Object... parameters)
Write a given object to the database.- Parameters:
object
- the object to writesql
- the SQL statementparameters
- the parameters
-
write
public void write(Schema schema)
Description copied from interface:DatabaseObjectWriter
Create a schema in the database.- Specified by:
write
in interfaceDatabaseObjectWriter
- Parameters:
schema
- schema to be written
-
write
public void write(Table table)
Description copied from interface:DatabaseObjectWriter
Create a table in the database.- Specified by:
write
in interfaceDatabaseObjectWriter
- Parameters:
table
- table to be written
-
truncate
public void truncate(Table table)
Description copied from interface:DatabaseObjectWriter
Truncate a table.- Specified by:
truncate
in interfaceDatabaseObjectWriter
- Parameters:
table
- table to truncate
-
getQuotedColumnName
protected abstract String getQuotedColumnName(String columnName)
Get a quoted column name.- Parameters:
columnName
- name of a column- Returns:
- quoted column name
-
write
public void write(Table table, Stream<List<Object>> rows)
Description copied from interface:DatabaseObjectWriter
Bulk write data to a database table.- Specified by:
write
in interfaceDatabaseObjectWriter
- Parameters:
table
- table to write torows
- stream of rows to be written
-
createCommaSeparatedSystemPrivilegeList
protected String createCommaSeparatedSystemPrivilegeList(GlobalPrivilege[] privileges)
Join a given array forGlobalPrivilege
s with,
.- Parameters:
privileges
- privileges- Returns:
- comma separated string
-
write
public void write(User user, DatabaseObject object, ObjectPrivilege... privileges)
Description copied from interface:DatabaseObjectWriter
Grant privileges to a database object to a user.- Specified by:
write
in interfaceDatabaseObjectWriter
- Parameters:
user
- user who gets the privilegesobject
- object the privileges apply toprivileges
- privileges to be assigned
-
createCommaSeparatedObjectPrivilegeList
protected String createCommaSeparatedObjectPrivilegeList(ObjectPrivilege[] privileges)
Join the givenObjectPrivilege
s with a,
.- Parameters:
privileges
- privileges to join- Returns:
- comma separated string
-
executeSqlFile
public void executeSqlFile(Path... sqlFiles)
Description copied from interface:DatabaseObjectWriter
Execute the contents of a SQL script file.- Specified by:
executeSqlFile
in interfaceDatabaseObjectWriter
- Parameters:
sqlFiles
- path(s) to the script file(s)
-
drop
public void drop(Table table)
Description copied from interface:DatabaseObjectWriter
Drop a table.- Specified by:
drop
in interfaceDatabaseObjectWriter
- Parameters:
table
- table to drop
-
drop
public void drop(User user)
Description copied from interface:DatabaseObjectWriter
Drop a user.- Specified by:
drop
in interfaceDatabaseObjectWriter
- Parameters:
user
- to drop
-
-