Open main menu

CDOT Wiki β

Changes

PostgreSQL Adapter-nexj/schema-test

251 bytes removed, 20:49, 26 January 2014
no edit summary
{{Admon/obsolete}}
 
<big><big> PostgreSQL Adapter for NexJ - Working Inside Schema 'test' </big></big>
{{NexJ_Express Index}}
==1- Initializing the SQL environment==
: After activating the connection, the database is locked.
== 2- DATA DEFINITION LANGUAGE _ DDL ===== CREATING SCHEMA ===
* List of Files needed to be modified *
:src- [[ PostgreSQL_Adapter-nexj/SchemaManger | PostgreSQLSchemaManager.java ]] --- ([[SchemaBackup]]) // Extends SQLSchemaManager.java - class for reading, creating and upgrading the database schema
: Script - scripts are being processed through SQLDataTest.java
=== CREATING SCHEMA -- ''PostgreSQLSchemaManager.java''===
* <u><code> CREATE TABLE </code></u>
:: 1- DATA TYPE: data types are changed in '''''<code> appendColumnType() </code>''''' based on each jdbc type's equivalent in PostgreSQL. :::*[http://db.apache.org/ddlutils/databases/postgresql.html mapping JDBC data types to PostgreSQL data types]:::*[http://en.wikibooks.org/wiki/Converting_MySQL_to_PostgreSQL#Data_Types comparison between Postgre and MySQL data types] :: 2- STORAGE ENGINE: In MySQL, the storage engine is set to a transactional safe engine such as [http://www.wikivs.com/wiki/MySQL_vs_PostgreSQL#MySQL:InnoDB InnoDB], whereas PostgreSQL has a single built in engine. So, implementation of '''''<code> appendTableSuffix() </code>''''' in PostgreSQLManager.java was removed:: 3- CHARACTER SET: In MySQL, the character set should be defined when creating a table. Whereas in PostgreSQL when a database is created, the character set is set to 'UTF8' by default. :: 4- AUTO INCREMENT: PostgreSQL doesn't support 'auto_increment' as some other databases for a unique identifier column. There are two ways around this, 1- To create a 'sequence', 2- Use SERIAL, which is a macro around 'sequence'. SERIAL is an 'integer' and a 'sequence, with the column default to the sequences next value. As of postgreSQL 7.3, to make a serial column unique, it should be specified as a unique constraint or a primary key. More info @ [[PostgreSQL_Adapter-nexj/Resources#Mapping_Data_Types.2C_Metadata | PostgreSQL Resources]]::
<source lang=java>
/* MySQL version of creating table script */
)engine=InnoDB character set = utf8
</source>
::
<source lang=java>
/* PostgreSQL version of creating table script */
: [[ PostgreSQL_Adapter-nexj/Upgrade | main.upgrade ]]
: test- [[ PostgreSQL_Adapter-nexj/SchemaMangerTest | PostgreSQLSchemaManagerTest.java]] // Extends SQLSchemaManagerTest.java
: Script - scripts are being processed through SQLDataTestpostgresql_drop.javasql
* <u><code> DROP TABLE </code></u>
: File to configure: ''PostgreSQLSchemaManager.java''
* <u><code> INSERT INTO TABLE </code></u>
: File to configure: ''PostgreSQLSchemaManager.java''
* <u><code> ALTER TABLE </code></u>
: File to configure: ''PostgreSQLSchemaManager.java''
 
== DATA MANIPULATION LANGUAGE _ DML ==
* List of Files needed to be modified
==3- DATA MANIPULATION LANGUAGE _ DML ==* List of Files needed to be modified[[sampleProj]]
:src- [[ PostgreSQL_Adapter-nexj/Adapter | PostgreSQLAdapter.java ]] // Extends SQLAdapter.java - SQL Persistence adapter, responsible for regular data queries (insert, select, delete)
: test- [[ PostgreSQL_Adapter-nexj/AdapterTest | PostgreSQLAdapterTest.java ]]] // Extends SQLAdapterTest.java
: Script - scripts are being processed through SQLDataTest.java
:: postgresql_insert.sql
:: TO be cond'