Establishing a Connection
Creating a JDBC Data Source
You can create a JDBC data source to connect from your Java application. Creating a JDBC data source based on the CData JDBC Driver for Odoo consists of three basic steps:
- Add the driver JAR file to the classpath. The JAR file is located in the lib subfolder of the installation directory. Note that the .lic file must be located in the same folder as the JAR file.
- Provide the driver class. For example:
cdata.jdbc.odoo.OdooDriver
- Provide the JDBC URL. For example:
jdbc:odoo:User=MyUser;APIToken=MyToken;URL=http://MyOdooSite/;Database=MyDatabase or jdbc:cdata:odoo:User=MyUser;APIToken=MyToken;URL=http://MyOdooSite/;Database=MyDatabase
You can use the second format above whenever there is a conflict in your application between drivers using the same URL format to ensure you are using the CData driver. The URL must start with either "jdbc:odoo:" or "jdbc:cdata:odoo:" and can include any of the connection properties in name-value pairs separated with semicolons.
Connecting to Odoo
To connect, set the URL to your Odoo instance URL, User and APIToken to your user credentials, and Database to your Odoo database name.
If you are not using an API token (available only in Odoo 14 and later), you can enter your password directly into the APIToken field instead.
Quick Start: Connecting to Odoo Online
The steps below are a typical setup for connecting to Odoo Online:
- Set OdooEdition to Online.
- Set URL to the full URL of your Odoo instance, such as https://mycompany.odoo.com.
- Set User to your Odoo login (email or username).
- Set APIToken to your API key or password.
- Set Database to your database name (optional for Odoo Online, required for On-Premises).
Note: For On-Premises Odoo, the steps are similar, but you must always provide Database and ensure your server is accessible to the driver. For Odoo Online, the database may be detected automatically, but setting it is recommended.
Odoo Edition
The OdooEdition property determines how the connection is established. Odoo offers two different types of environments, and this setting tells the driver which one you are using:
- Online: For Odoo's cloud-hosted SaaS version at odoo.com
- OnPrem: For Odoo installations that you or your company host on your own servers
If you're unsure, use Online if you access Odoo from a web address like yourcompany.odoo.com. Use OnPrem if your organization manages its own Odoo server (often accessed via a custom domain or local network).
Database
Odoo supports multiple databases under the same server. You must provide the name of the specific database you want to connect to.
- For Odoo Online: The database name is often included in the web address, and the driver may be able to detect it automatically if Database is left blank. However, in some cases, the database is not visible in the URL and must be specified manually. Setting this value is always recommended for reliability.
- For Odoo On-Premises: You must set the Database property. The driver cannot detect the database automatically in this case.
How to Find Your Database Name (Odoo Online)
- Log into your Odoo Online account
- Click your profile icon in the top-right corner and choose My Databases
- Your database name will be listed in the table
Alternatively, you can often see the database name in the subdomain of your URL. If your address is https://mycompany.odoo.com, your database name is likely mycompany.
Access Rights
To discover available models (tables) in Odoo, the driver checks the internal ir.model.access table, which defines what models a user is allowed to see.
By default, only Odoo administrators have permission to read this table. To give a non-admin user access, create a new group:
- Log in as an administrator and enable developer mode in Odoo settings.
- Open the Groups page (under the Users drop-down) and create a new group.
- Set the Application to Administration and name the group "Service Access".
- Add the users who need access under the Users tab.
- In the Access Rights tab, add a permission for ir.model.access (or Model Access), check Read, and name it Inspect Models.
If you're unable to grant access in this way, set the CheckPermissions property to false. This disables permission checking and allows the driver to list all available models, even if the user doesn't have explicit access.
Troubleshooting
If you encounter errors like missing database or authentication failed, try the following:
- Double-check the value of Database, especially for On-Prem environments.
- Make sure your user credentials are valid by logging into Odoo directly.
- If using Odoo Online, try leaving Database blank and allow auto-detection.
- Ensure the correct OdooEdition is set (Online vs OnPrem).