Rel needs a JDBC driver
Posted: Sun Nov 27, 2005 8:31 pm
Rel needs a JDBC driver. If you're interested in helping to develop one, please reply to this topic.
Hi Rene,Rene Hartmann wrote:I am thinking about a Java interface to a D, but I doubt that a JDBC interface is very useful. After all, if you don't use SQL, it will not be really JDBC-compliant, even if you use the JDBC API (which is very SQL-oriented).
I'm thinking about a Java API for a D system, similar to other DBMS APIs (like JDBC, JDO, Hibernate ...) but designed for a D, a kind of a "standard" API for D systems (even if there is probably not enogh support in the Java community to make it a Java standard) and which could be implemented by different D systems (like Rel and Duro).
I personally prefer an interface that works without using a sublanguage, but I think both approaches (with and without using e.g. Tutorial D as a sublanguage) could be integrated into a single API.
I have a specific, pragmatic reason for wanting a JDBC interface. I want to take existing Java code that uses JDBC and relatively easily port it from SQL to Tutorial D. In most cases, this would require changing only the sublanguage text, without having to change the JDBC API calls. Some JDBC features are SQL-specific, such as specifying transaction isolation levels, SQL/Java type mappings, and ResultSet concurrency, but these vary across SQL implementations anyway. JDBC users are used to dealing with that.JDBC 3.0 Specification wrote:5. Maintain the focus on SQL
The focus of the JDBC API has always been on accessing relational data from the Java programming language. This continues to be true with the JDBC 3.0 API. The JDBC 3.0 API does not preclude interacting with other technologies, including XML, CORBA, or non-relational data, but the primary target will still be relational data and SQL.
But the quotation above says that JDBC focuses on relational data and SQL.Dave wrote: It is possible to achieve full JDBC 3 compliance without using SQL. JDBC compliance is based on implementing the methods and classes defined in the JDBC specification, without reference to any particular database sublanguage. While JDBC does indeed have an SQL focus, it is explicitly not SQL-only. See, for example, page 18 of the JDBC 3.0 specification, which states:
JDBC 3.0 Specification wrote:5. Maintain the focus on SQL
The focus of the JDBC API has always been on accessing relational data from the Java programming language. This continues to be true with the JDBC 3.0 API. The JDBC 3.0 API does not preclude interacting with other technologies, including XML, CORBA, or non-relational data, but the primary target will still be relational data and SQL.
JDBC 3.0 Specification wrote: 6.2 Guidelines and Requirements
The following guidelines apply to all levels of compliance:
- A JDBC API implementation must support Entry Level SQL92 plus the SQL command Drop Table (see note.)
It also states "...does not preclude interacting with other technologies, including XML, CORBA, or non-relational data..."Rene Hartmann wrote:But the quotation above says that JDBC focuses on relational data and SQL.Dave wrote: It is possible to achieve full JDBC 3 compliance without using SQL. JDBC compliance is based on implementing the methods and classes defined in the JDBC specification, without reference to any particular database sublanguage. While JDBC does indeed have an SQL focus, it is explicitly not SQL-only. See, for example, page 18 of the JDBC 3.0 specification, which states:
JDBC 3.0 Specification wrote:5. Maintain the focus on SQL
The focus of the JDBC API has always been on accessing relational data from the Java programming language. This continues to be true with the JDBC 3.0 API. The JDBC 3.0 API does not preclude interacting with other technologies, including XML, CORBA, or non-relational data, but the primary target will still be relational data and SQL.
Rene Hartmann wrote: And the JDBC Specification states:JDBC 3.0 Specification wrote: 6.2 Guidelines and Requirements
The following guidelines apply to all levels of compliance:
- A JDBC API implementation must support Entry Level SQL92 plus the SQL command Drop Table (see note.)
No further along, I'm afraid. I've been trying to convince students to do it as a dissertation project, but so far no takers.luxspes wrote:What is the status on this? (The last post is from 2006)
Excellent! I have no idea of the effort needed (or even how to measure it... How long is a piece of string? ) There is a fairly minimal client-side API defined in the ca.mb.armchair.rel3.client.* package, and the facilities for communicating with a Rel server are essentially complete. The client-side API would probably need to be extended, and you can obtain metadata from the Rel Catalog via Tutorial D queries. Having not written a JDBC driver, I can only speculate on what else would be needed.ppurang wrote:I'd be interested in implementing the needed driver. I love the fact that Rel relies on the Java 6 platform. We could use all the new Java language additions (since 1.5), Concurrency utilities and NIO. Do you have a rough estimate of the effort needed?