- All Superinterfaces:
AutoCloseable
- All Known Implementing Classes:
FBManager
FBManager, for creating and dropping databases.
The class FBManager provides an API to create and drop databases, including options to limit the lifetime
of a database
// Use try-with-resources to automatically stop (close) FBManager
try (FBManager manager = new FBManager()) {
manager.setServer("localhost");
manager.setUser("sysdba");
manager.setPassword("masterkey");
manager.setFileName("path/to/database.fdb");
manager.setPageSize(PageSizeConstants.SIZE_16K);
manager.setDefaultCharacterSet("UTF8");
// Create database when manager is started
manager.setCreateOnStart(true);
// Drop database on creation if it already exists
manager.setForceCreate(true);
// Drop database when manager is stopped
manager.setDropOnStop(true);
manager.start();
// Use database...
}
// After end of try-with-resources, the database will be dropped
- Author:
- David Jencks
-
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Alias forstop()voidcreateDatabase(String fileName, String user, String password) Create a database with the specified file name, username and password on the specifiedserverandport.voidcreateDatabase(String fileName, String user, String password, String roleName) Create a database with the specified file name, username, password and role on the specifiedserverandport.voiddropDatabase(String fileName, String user, String password) Drop a database with the specified file name, username and password on the specifiedserverandport.voiddropDatabase(String fileName, String user, String password, String roleName) Drop a database with the specified file name, username, password and role on the specifiedserverandport.intgetName()intintgetPort()getState()getType()booleanGet if the database will be created when callingstart().booleanisDatabaseExists(String fileName, String user, String password) Check if a database exists with the specified file name, username and password on the specifiedserverandport.booleanGet if the database will be created when callingstop().booleanGet if the database will be dropped if exists when creating a database.voidsetCreateOnStart(boolean createOnStart) Set if the database will be created when callingstart().voidsetDefaultCharacterSet(String firebirdCharsetName) Set the default database character set to use when creating a new database.voidsetDialect(int dialect) Set the database dialect to use when creating a new database.voidsetDropOnStop(boolean dropOnStop) Set if the database will be created when callingstop().voidsetEnableProtocol(String enableProtocol) Sets the enable protocol value.voidsetFileName(String fileName) Set the file name or alias of the database.voidsetForceCreate(boolean forceCreate) Set if the database will be dropped if exists when creating a database.voidsetForceWrite(Boolean forceWrite) Control force write behaviour of the created database.voidsetPageSize(int pageSize) Set the page size to use when creating a new database.voidsetPassword(String password) Set the password.voidsetPort(int port) Set the port of the Firebird server.voidsetRoleName(String roleName) voidSet the host name of the Firebird server.voidSet the GDS plugin type to use.voidsetUserName(String userName) Set the username.voidstart()Start this manager.voidstop()Stop this manager.
-
Method Details
-
start
Start this manager.If
isCreateOnStart()istrue, will attempt to create a new database specified using theserver,port,fileNameand related properties. If the specified already exists, nothing will be created unlessisForceCreate()istrue. WhenforceCreateistruean attempt will be made to drop the database.- Throws:
IllegalStateException- If this manager is not startedException- For failures to start or create the database
-
stop
Stop this manager.If
isDropOnStop()istrue, will attempt to drop the database specified using theserver,port,fileNameand related properties,If the manager is currently stopped, this method will do nothing.
- Throws:
Exception- For failures to drop the database.
-
close
Alias forstop()- Specified by:
closein interfaceAutoCloseable- Throws:
Exception
-
getName
String getName()- Returns:
- Descriptive name of this manager
-
getState
String getState()- Returns:
- Current state (
"Stopped"or"Started"
-
setServer
Set the host name of the Firebird server.- Parameters:
host- Hostname
-
getServer
String getServer()- Returns:
- The host name of the Firebird server (default is
"localhost")
-
setPort
void setPort(int port) Set the port of the Firebird server.- Parameters:
port- Port of the Firebird server
-
getPort
int getPort()- Returns:
- The port of the Firebird server (default is
3050)
-
getFileName
String getFileName()- Returns:
- File name or alias of the database
-
setFileName
Set the file name or alias of the database.- Parameters:
fileName- File name or alias of the database
-
getType
String getType()- Returns:
- GDS plugin type name (default is
GDSFactory.getDefaultGDSType())
-
setType
Set the GDS plugin type to use.- Parameters:
type- GDS plugin type name (PURE_JAVA,NATIVE,EMBEDDED)
-
getUserName
String getUserName()- Returns:
- User name
-
setUserName
Set the username.- Parameters:
userName- Username
-
getPassword
String getPassword()- Returns:
- password
-
setPassword
Set the password.- Parameters:
password- Password
-
getRoleName
String getRoleName()- Returns:
- SQL role to use.
-
setRoleName
- Parameters:
roleName- SQL role to use.
-
getEnableProtocol
String getEnableProtocol()- Returns:
- enable protocol value (see also
AttachmentProperties.getEnableProtocol(). - Since:
- 6
-
setEnableProtocol
Sets the enable protocol value.- Parameters:
enableProtocol- enable protocol value- Since:
- 6
-
setDialect
void setDialect(int dialect) Set the database dialect to use when creating a new database.- Parameters:
dialect- Database dialect (1 or 3)- Throws:
IllegalArgumentException- if value is not 1 or 3- See Also:
-
getDialect
int getDialect()- Returns:
- Database dialect (either 1 or 3), default is 3.
-
setPageSize
void setPageSize(int pageSize) Set the page size to use when creating a new database.The value for
pageSizemust be one ofPageSizeConstants. The default value depends on the Firebird version.Some values are not valid on all Firebird versions.
- Parameters:
pageSize- The page size to be used in the created database, seePageSizeConstants- See Also:
-
getPageSize
int getPageSize()- Returns:
- The page size to be used when creating a database, or
-1if the database default is used.
-
setDefaultCharacterSet
Set the default database character set to use when creating a new database.- Parameters:
firebirdCharsetName- Character set name, use Firebird names only;nullwill use Firebird default (NONE). Specifying an invalid name will result in an exception during database creation.
-
getDefaultCharacterSet
String getDefaultCharacterSet()- Returns:
- The default character set name,
nullmeans not set. - See Also:
-
setForceWrite
Control force write behaviour of the created database.Only use this method if you know what you're doing, and if you can live with data loss and database corruption. In general it is advisable to use the Firebird default (
nullfor this method).- Parameters:
forceWrite-null- default behaviour (force write enabled after database creation and initialization),true- enable force write at database creation,false- disable force write
-
getForceWrite
Boolean getForceWrite()- Returns:
- The forced writes configuration
- See Also:
-
isCreateOnStart
boolean isCreateOnStart()Get if the database will be created when callingstart().- Returns:
truewhen the database will be created on start,falseotherwise.
-
setCreateOnStart
void setCreateOnStart(boolean createOnStart) Set if the database will be created when callingstart().- Parameters:
createOnStart-trueto create the database on start,falseto not create on start (default)
-
isDropOnStop
boolean isDropOnStop()Get if the database will be created when callingstop().- Returns:
trueto drop the database on stop,falseotherwise
-
setDropOnStop
void setDropOnStop(boolean dropOnStop) Set if the database will be created when callingstop().- Parameters:
dropOnStop-trueto drop the database on stop,falseto not drop on stop (default)
-
isForceCreate
boolean isForceCreate()Get if the database will be dropped if exists when creating a database.- Returns:
trueto drop existing database on create,falseto not create a database if it exists.
-
setForceCreate
void setForceCreate(boolean forceCreate) Set if the database will be dropped if exists when creating a database.- Parameters:
forceCreate-trueto drop existing database on create,falseto not create a database if it exists.
-
createDatabase
Create a database with the specified file name, username and password on the specifiedserverandport.On creation, the following properties will used to configure the database:
dialect,pageSize,defaultCharacterSet.If the database already exists, and
forceCreateistrue, the database will be dropped. Iffalse, no database will be created.- Parameters:
fileName- Database file name or aliasuser- User namepassword- Password- Throws:
IllegalStateException- If this manager is not startedException- If database creation fails.
-
createDatabase
void createDatabase(String fileName, String user, String password, String roleName) throws Exception Create a database with the specified file name, username, password and role on the specifiedserverandport.On creation, the following properties will used to configure the database:
dialect,pageSize,defaultCharacterSet.If the database already exists, and
forceCreateistrue, the database will be dropped. Iffalse, no database will be created.- Parameters:
fileName- Database file name or aliasuser- User namepassword- PasswordroleName- Role name (ornullfor no role)- Throws:
IllegalStateException- If this manager is not startedException- If database creation fails.
-
dropDatabase
Drop a database with the specified file name, username and password on the specifiedserverandport.- Parameters:
fileName- Database file name or aliasuser- User namepassword- Password- Throws:
Exception- If this manager is not started or database drop fails.
-
dropDatabase
Drop a database with the specified file name, username, password and role on the specifiedserverandport.- Parameters:
fileName- Database file name or aliasuser- User namepassword- PasswordroleName- Role name (ornullfor no role)- Throws:
Exception- If this manager is not started or database drop fails.
-
isDatabaseExists
Check if a database exists with the specified file name, username and password on the specifiedserverandport.Existence is checked by connecting to the database, so any connection error, including invalid credentials, will report the database as not existing.
- Parameters:
fileName- Database file name or aliasuser- User namepassword- Password- Returns:
trueif the database exists and can be connected,falseif the database does not exist or any other error occurred.- Throws:
Exception- Currently no other exception is thrown, this may change in the future
-