JPOX
JPOX
 JPOX Version 1.0
Configuration | Tutorials | Worked Examples | Developer
Obtaining JPOX
JPOX Preparation
JPOX Runtime
RDBMS Compatibility

Java Persistent Objects JDO (JPOX) operates using a JDBC driver for connectivity to RDBMS. RDBMS systems accept varying standards of SQL and so JPOX will support particular RDBMS/JDBC combinations only, though clearly we try to support as many as possible. The table below shows the versions of RDBMS and JDBC driver that JPOX has been tested with

DBMS NameDBMS VersionPlatformJDBC NameJDBC VersionValidatorWhen
4.0.18Linuxmysql-connector-java3.0.11Andy Jefferson05-May-2004
4.0.15Windowsmysql-connector-java3.0.9Randy Julian01-Jan-2004
4.1.3mysql-connector-java3.0.10Jochen Bedesdorfer02-Aug-2004
3.23.55Windows XPmysql-connector-java3.0.14Marcus Redeker10-Jun-2004
MS SQL Server2000WindowsMicrosoft SQL Server JDBC DriverErik Bengtson15-Sep-2003
8Sun SolarisJDBCOJDBC 1.4 and/or classes12Erik Bengtson15-Sep-2003
9Sun SolarisJDBCOJDBC 1.4 and/or classes12Erik Bengtson15-Sep-2003
12.5.0.3LinuxJConnect5.5Andy Jefferson18-Sep-2003
1.7.1WindowsErik Bengtson21-Nov-2003
McKoi1.0.2WindowsErik Bengtson22-Nov-2003
7.3.4-2LinuxPostgreSQL7.3.4-2Andy Jefferson29-Mar-2004
7.4.1-2LinuxPostgreSQL7.4.1-2Andy Jefferson08-May-2004
Pointbase
Cloudscape
DB2
DB2J (Cloudscape 5)
Firebird
SAPDB / MaxDBRalf Ullrich31-Jul-2004

If you have success with any other hardware platform combinations for the above RDBMS or indeed with any other RDBMS, please let us know so we can update our compatibility guide.

MySQL

MySQL is supported as a RDBMS datastore by JPOX however only the INNODB table type is supported (all table types should be fully supported for MySQL ver 5.0 due to features that will be included in that release - foreign key support, Views etc). The user needs to make sure that INNODB table types are available in their version of MySQL. Note also that while SubSELECTS are not implemented until ver 4.1, we use UNIONs so are not affected. The isEmpty() operation for Collections and Maps will not work with MySQL 4.0 since the query uses EXISTS and this is only available from version 4.1.

To specify MySQL as your datastore, you will need something like the following specifying (replacing 'db-name' with name of your database etc)

javax.jdo.option.ConnectionDriverName=com.mysql.jdbc.Driver
javax.jdo.option.ConnectionURL=jdbc:mysql://'host':'port'/'db-name'
javax.jdo.option.ConnectionUserName='user-name'
javax.jdo.option.ConnectionPassword='password'
                
MS SQL Server

To specify MS SQL as your datastore, you will need something like the following specifying (replacing 'db-name' with name of your database etc)

javax.jdo.option.ConnectionDriverName=com.microsoft.jdbc.sqlserver.SQLServerDriver
javax.jdo.option.ConnectionURL=jdbc:microsoft:sqlserver://'host':'port';DatabaseName='db-name';SelectMethod=cursor
javax.jdo.option.ConnectionUserName='user-name'
javax.jdo.option.ConnectionPassword='password'
                
Oracle

To specify Oracle as your datastore, you will need something like the following specifying (replacing 'db-name' with name of your database etc) ... you can also use 'oci' instead of 'thin' depending on your driver.

javax.jdo.option.ConnectionDriverName=oracle.jdbc.driver.OracleDriver
javax.jdo.option.ConnectionURL=jdbc:oracle:thin:@'host':'port':'db-name'
javax.jdo.option.ConnectionUserName='user-name'
javax.jdo.option.ConnectionPassword='password'
                
Sybase

To specify Sybase as your datastore, you will need something like the following specifying (replacing 'db-name' with name of your database etc)

javax.jdo.option.ConnectionDriverName=com.sybase.jdbc2.jdbc.SybDriver
javax.jdo.option.ConnectionURL=jdbc:sybase:Tds:'host':'port'/'db-name'
javax.jdo.option.ConnectionUserName='user-name'
javax.jdo.option.ConnectionPassword='password'
                
HSQL

HSQL is supported as a RDBMS datastore by JPOX however in-memory and stand-alone modes don't work. You should use server mode.

To specify HSQL as your datastore, you will need something like the following specifying (replacing 'db-name' with name of your database etc)

javax.jdo.option.ConnectionDriverName=org.hsqldb.jdbcDriver
javax.jdo.option.ConnectionURL=jdbc:hsqldb://'host':'port'/'db-name'
javax.jdo.option.ConnectionUserName='user-name'
javax.jdo.option.ConnectionPassword='password'
                
McKoi

McKoi is supported as a RDBMS datastore by JPOX however inheritance is not supported for this database. JPOX uses the SQL clause UNION in inheritance and McKoi does not support it. In addition, JPOX cannot validate datastore information with McKoi because the McKoi JDBC driver doesn't provide sufficient information.

To specify McKoi as your datastore, you will need something like the following specifying (replacing 'db-name' with name of your database etc)

javax.jdo.option.ConnectionDriverName=com.mcKoi.JDBCDriver
javax.jdo.option.ConnectionURL=jdbc:mckoi://'host':'port'/'db-name'
javax.jdo.option.ConnectionUserName='user-name'
javax.jdo.option.ConnectionPassword='password'
                
PostgreSQL

To specify PostgreSQL as your datastore, you will need something like the following specifying (replacing 'db-name' with name of your database etc)

javax.jdo.option.ConnectionDriverName=org.postgresql.Driver
javax.jdo.option.ConnectionURL=jdbc:postgresql://'host':'port'/'db-name'
javax.jdo.option.ConnectionUserName='user-name'
javax.jdo.option.ConnectionPassword='password'
                
JDBC Driver parameters

If you need to pass additional parameters to the JDBC driver you can append these to the end of the javax.jdo.option.ConnectionURL. For example,

javax.jdo.option.ConnectionURL=jdbc:mysql://localhost?useUnicode=true&characterEncoding=UTF-8