Connect to remote SQL Databases securely from Android and Java Desktop applications using JDBC
AceQL combines a virtual JDBC Driver and a framework to enable remote JDBC access over HTTP. Android and Java Desktop application developers can access remote SQL databases in the cloud by simply including standard JDBC calls in their code, just like they would for a local database. This greatly eases the development of Android, Swing and JavaFX applications that need to access remote data.
AceQL comes with a complete set of features: main data types are implemented, including BLOBs/CLOBs, and transactions are supported.
Security has been taken into account starting with the design stage: server-side configuration lets admins specify strong authentication and security rules in order to ensure database security.
Supported SQL Databases and JDBC Drivers / Main Features
- Compatible with JDBC 4+ drivers and main SQL compliant databases.
- Works across all major platforms:
- Supports Android, Windows, Unix/Linux and OS X on client side.
- Supports Windows, Unix/Linux and OS X on server side.
- Intensively tested with major SQL databases and JDBC Drivers:
- DB2 - DB2 JDBC Driver.
- H2 - H2 JDBC Driver.
- HSQLDB (HyperSQL Database) - HSQLDB JDBC Driver.
- Informix - Informix JDBC Driver.
- Ingres - Ingres JDBC Driver.
- MariaDB - MariaDB JDBC Driver.
- MySQL - MySQL JDBC Driver.
- MS Access - Sun JDBC-ODBC Driver.
- Oracle Database - Oracle JDBC Driver.
- PostgreSQL - PostgreSQL JDBC Driver.
- SQL Server - Microsoft JDBC Driver for SQL Server & jTDS JDBC Driver.
- Sybase ASE - Sybase ASE JDBC Driver & jTDS JDBC Driver.
- Sybase SQL Anywhere - SQL Anywhere JDBC Driver.
- Teradata Database - Teradata JDBC Driver.
- Packaged as a real JDBC Driver, allows use with third party programs and/or explorer tools like SquirreL.
- Allows standard JDBC syntax for all operations.
- Client/Server communications and exchanges entirely performed over HTTP or HTTPS on standard ports.
- Supports JDBC Connections through client side proxy.
- No firewall configuration required for Swing, JavaFX and SWT applications in order to access the remote SQL databases.
- Optimized and designed to manage heavy traffic with JDBC connection pooling, data streaming, stateless sessions, etc.
- Full default configuration included for easy and rapid deployment.
- Configuration-neutral. Configuration is done through getters in Java classes using Dependency injection. This allows you to easily define your configuration strategy and implementation (.ini file, XML, etc.) A small set of configuration methods can be used as-is or overloaded with your own code. (To learn more, see the User Guide.)
- Supports multi databases configuration per installation.
- Supports simultaneous JDBC Connections from client side.
- Supports JDBC calls from Java threads.
- No prerequisite on server side except Java.
- Easy installation & setup: client & server side packaged in one Jar with no dependencies.
- Entirely coded in Java.
- Developed by and for Android, Swing and JavaFX developers.
- Supports SQL Commit & Rollback, including Savepoints.
- Supports main JDBC data types for columns: Boolean, Integer, Short, Double, Float, BigDecimal, Long, String, Date, Time, Timestamp.
- Supports URL & Arrays.
- Supports RowId.
- Supports BLOBs and CLOBs with no size limits.
- Supports queries returning ResultSet with no size limits.
- Support setting limits on the size of requests.
- Uses input stream and output stream I/O for BLOB/CLOB updates and reads.
- Uses input stream and output stream I/O for ResultSet transfer.
- Includes built-in and easy to use helper classes for GUI Progress Bar implementations.
- Fully supports database catalog queries (DatabaseMetaData and ResultSetMetaData.)
- Supports stored procedures.
- Advanced JDBC data types: Struct, NClob, SQLXML and Typemaps (planned).
- Some Statement methods: getWarnings, isPoolable/setPoolable, getMoreResults, setCursorName (planned).
- Updatable ResultSet.
- RowSet Objects.
Data Management / JDBC data types
Limitations in v4.0
The following JDBC features are not supported or implemented in version 4.0: