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
The second format above can be used 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 a valid Odoo site, User and APIToken to the connection details of the user you are connecting with, and Database to the Odoo database.If you are not using API tokens (they are only supported in Odoo 14 and above), you can also provide the password in the APIToken field.
Access Rights
In order for the driver to determine what models you can access in Odoo, the user you connect with must have permissions to read from "ir.model.access" (an internal Odoo model that governs access rights). Normally this is reserved for administrators, but it can be granted to any user by creating a service group:- As an administrator, open the Odoo settings page and enable "developer mode". If this is not available you may need to login as the superuser instead.
- Open the Groups page (under the Users dropdown) and create a new group
- Set the Application to "Administration" and the name to "Service Access"
- Add any users who need service access in the Users tab
- In the Access Rights tab, add an entry for the "ir.model.access" object (it may be called "Model Access"), check Read Access, and give it the name "Inspect Models"
- Save the group
If making this change is not possible, then you should set the CheckPermissions option to false. That will list all models in Odoo as tables, regardless of what permissions your user actually has for those models.