====== Database Connector ====== **''public class DatabaseConnector''**\\ **''extends java.lang.Object''**\\ \\ Class for database connection. Database connection is established with PostgreSQL JDBC Driver, a Java library that allows Java programs to connect to a PostgreSQL database.\\ Functions: * Read schemas relations, and foreign keys from database * Add/Edit/Delete schema (and relation) * Get and add remote database connection information (only for remote database schema) * Evaluate SQL query (only for remote database schema) * Validate and add user * Initialize required tables in installation process (for localhost application version) Deprecated functions: * Read foreign keys, finite domain constraints, TC statements, and queries from database * Add/Edit/Delete foreign keys, finite domain constraints, TC statements, and queries in database * Copy and restore schema from/to database ===== Class Attributes ===== private java.sql.Connection connection ===== Class Constructors ===== ==== DatabaseConnector ==== public DatabaseConnector() throws java.sql.SQLException Constructor (for test only).\\ **Throws:** * java.sql.SQLException ---- ==== DatabaseConnector ==== public DatabaseConnector(boolean webApp, java.lang.String appPath) throws java.sql.SQLException, java.lang.ClassNotFoundException, java.io.IOException Constructor.\\ //Called in [[magik-demo:developer:magik-business-logic#index.jsp|index.jsp]].// **Parameters:** * webApp - true if web application, false otherwise * appPath - application path **Throws:** * java.sql.SQLException * java.lang.ClassNotFoundException * java.io.IOException ---- ==== DatabaseConnector ==== public DatabaseConnector(java.lang.String dbUrl, java.lang.String dbUsername, java.lang.String dbPassword) throws java.sql.SQLException, java.lang.ClassNotFoundException Constructor. //Called by:// * //[[magik-demo:developer:class:sessioncontrol#addDbConnection|addDbConnection(String, String, String) : void - it.unibz.inf.magik.web.SessionControl]]// * //[[magik-demo:developer:class:sessioncontrol#readDBSchemas|readDBSchemas(boolean) : void - it.unibz.inf.magik.web.SessionControl]]// * //[[magik-demo:developer:class:sessioncontrol#printQueryResultHTML|printQueryResultHTML(SessionSchema, int) : String - it.unibz.inf.magik.web.SessionControl]]// **Parameters:** * dbUrl - database url * dbUsername - database username * dbPassword - database password **Throws:** * java.sql.SQLException * java.lang.ClassNotFoundException ===== Class Methods ===== ==== getSchemaType==== private java.lang.String getSchemaType(boolean localSchema) Get schema type. **Parameters:** * localSchema - true if virtual schema, false if remote schema **Returns:** * String "local" if localSchema is true, "remote" otherwise ---- ==== getSchemas==== public java.util.ArrayList getSchemas(boolean localSchema, java.lang.String username) throws java.sql.SQLException Get list of schemas. //Called by: [[magik-demo:developer:class:sessioncontrol#readDBSchemas|readDBSchemas(boolean) : void - it.unibz.inf.magik.web.SessionControl]]// **Parameters:** * localSchema - true if virtual schema, false if remote schema * username - **Returns:** * list of schema names **Throws:** * java.sql.SQLException ---- ==== getDbSchemas==== public java.util.ArrayList getDbSchemas() throws java.sql.SQLException Get list of schemas from remote database connection. //Called by: [[magik-demo:developer:class:sessioncontrol#addDbConnection|addDbConnection(String, String, String) : void - it.unibz.inf.magik.web.SessionControl]]// **Returns:** * list of schema names **Throws:** * java.sql.SQLException ---- ==== getSchema==== public Schema getSchema(java.lang.String schemaName, boolean localSchema) Initialize new schema. //Called by: [[magik-demo:developer:class:sessioncontrol#readDBSchemas|readDBSchemas(boolean) : void - it.unibz.inf.magik.web.SessionControl]]// **Parameters:** * schemaName - schema name * localSchema - true if virtual schema, false if remote schema **Returns:** * Schema new schema ---- ==== readRelation==== public java.util.ArrayList readRelation(java.lang.String schema, java.lang.String username) throws java.sql.SQLException Read relations from virtual schema (in local database). //Called by: [[magik-demo:developer:class:sessioncontrol#readDBSchemas|readDBSchemas(boolean) : void - it.unibz.inf.magik.web.SessionControl]]// **Parameters:** * schema - schema name * username - **Returns:** * arrRel list of relations **Throws:** * java.sql.SQLException ---- ==== readRelation==== public java.util.ArrayList readRelation(java.lang.String schemaName) throws java.sql.SQLException Read relations from remote database schema. //Called by: [[magik-demo:developer:class:sessioncontrol#readDBSchemas|readDBSchemas(boolean) : void - it.unibz.inf.magik.web.SessionControl]]// **Parameters:** * schemaName - schema name **Returns:** * arrRel list of relations **Throws:** * java.sql.SQLException ---- ==== readForeignKeys==== public java.util.ArrayList readForeignKeys(java.lang.String schemaNm, Schema schema, java.lang.String username) throws java.sql.SQLException Read database schema foreign key. //Called by: [[magik-demo:developer:class:sessioncontrol#readFK|readFK() : ArrayList - it.unibz.inf.magik.web.SessionControl]]// **Parameters:** * schemaNm - schema name * schema - * username - **Returns:** * list of foreign keys **Throws:** * java.sql.SQLException ---- ==== addRelation==== private void addRelation(Relation r, java.lang.String schema, java.lang.String username) throws java.sql.SQLException Add relation to the schema. //Called by: [[#addSchema|addSchema(Schema, String) : void - it.unibz.inf.magik.db.DatabaseConnector]]// **Parameters:** * r - relation to be added * schema - * username - **Throws:** * java.sql.SQLException ---- ==== addSchema==== public void addSchema(Schema schema, java.lang.String username) throws java.sql.SQLException Add schema to database. //Called by:// * //[[magik-demo:developer:class:sessioncontrol#addSchema|addSchema(SessionSchema, String) : void - it.unibz.inf.magik.web.SessionControl]]// * //[[#updateSchema|updateSchema(Schema, String, String) : void - it.unibz.inf.magik.db.DatabaseConnector]]// **Parameters:** * schema - * username - **Throws:** * java.sql.SQLException ---- ==== deleteSchema==== public void deleteSchema(Schema schema, java.lang.String username) throws java.sql.SQLException Delete schema from database. //Called by:// * //[[magik-demo:developer:class:sessioncontrol#deleteSchema|deleteSchema(String) : void - it.unibz.inf.magik.web.SessionControl]]// * //[[#updateSchema|updateSchema(Schema, String, String) : void - it.unibz.inf.magik.db.DatabaseConnector]]// **Parameters:** * schema - * username - **Throws:** * java.sql.SQLException ---- ==== updateSchema==== public void updateSchema(Schema schema, java.lang.String newSchemaName, java.lang.String username) throws java.sql.SQLException Update schema in database. //Called by: [[magik-demo:developer:class:sessioncontrol#updateSchema|updateSchema(Schema, String) : void - it.unibz.inf.magik.web.SessionControl]]// **Parameters:** * schema - * newSchemaName - * username - **Throws:** * java.sql.SQLException ---- ==== getDbUrl==== public java.lang.String getDbUrl(java.lang.String schema, java.lang.String username) throws java.sql.SQLException Get string of database url information (for remote database schema) from database. //Called by:// * //[[magik-demo:developer:class:sessioncontrol#readDBSchemas|readDBSchemas(boolean) : void - it.unibz.inf.magik.web.SessionControl]]// * //[[magik-demo:developer:class:sessioncontrol#printQueryResultHTML|printQueryResultHTML(SessionSchema, int) : String - it.unibz.inf.magik.web.SessionControl]]// **Parameters:** * schema - * username - **Throws:** * java.sql.SQLException ---- ==== getDbUser==== public java.lang.String getDbUser(java.lang.String schema, java.lang.String username) throws java.sql.SQLException Get string of database username information (for remote database schema) from database. //Called by:// * //[[magik-demo:developer:class:sessioncontrol#readDBSchemas|readDBSchemas(boolean) : void - it.unibz.inf.magik.web.SessionControl]]// * //[[magik-demo:developer:class:sessioncontrol#printQueryResultHTML|printQueryResultHTML(SessionSchema, int) : String - it.unibz.inf.magik.web.SessionControl]]// **Parameters:** * schema - * username - **Throws:** * java.sql.SQLException ---- ==== getDbPassword==== public java.lang.String getDbPassword(java.lang.String schema, java.lang.String username) throws java.sql.SQLException Get string of database password information (for remote database schema) from database. //Called by:// * //[[magik-demo:developer:class:sessioncontrol#readDBSchemas|readDBSchemas(boolean) : void - it.unibz.inf.magik.web.SessionControl]]// * //[[magik-demo:developer:class:sessioncontrol#printQueryResultHTML|printQueryResultHTML(SessionSchema, int) : String - it.unibz.inf.magik.web.SessionControl]]// **Parameters:** * schema - * username - **Throws:** * java.sql.SQLException ---- ==== addDbConnection==== public void addDbConnection(java.lang.String schemaName, java.lang.String username, java.lang.String dbUrl, java.lang.String dbUser, java.lang.String dbPassword) throws java.sql.SQLException Add remote database connection details to local database. //Called by: //[[magik-demo:developer:class:sessioncontrol#addDbConnection|addDbConnection(String, String, String) : void - it.unibz.inf.magik.web.SessionControl]]//// **Parameters:** * schemaName - * username - * dbUrl - database url * dbUser - database username * dbPassword - database password **Throws:** * java.sql.SQLException ---- ==== evaluateQuery==== public java.util.ArrayList evaluateQuery(Query q, java.lang.String schemaName) throws java.sql.SQLException Evaluate SQL query. //Called by: [[magik-demo:developer:class:sessioncontrol#printQueryResultHTML|printQueryResultHTML(SessionSchema, int) : String - it.unibz.inf.magik.web.SessionControl]]// **Parameters:** * q - SQL query * schemaName - schema name **Throws:** * java.sql.SQLException ---- ==== installation==== public void installation() throws java.sql.SQLException Initialize required tables in installation process (for localhost application version).\\ **Throws:** * java.sql.SQLException ---- ==== closeConnection==== public void closeConnection() throws java.sql.SQLException Close database connection. **Throws:** * java.sql.SQLException [[magik-demo:developer:class:databaseconnector|Back to Top]] | [[magik-demo:start|Back to Home Page]]