-
Notifications
You must be signed in to change notification settings - Fork 650
Description
While looking at #735 i noticed that we have similar classes in org.sqlite.core
, org.sqlite.jdbc3
and org.sqlite.jdbc4
.
For example for Statement
:
abstract class CoreStatement
abstract class JDBC3Statement extends CoreStatement
class JDBC4Statement extends JDBC3Statement implements Statement
And for PreparedStatement
:
abstract class CorePreparedStatement extends JDBC4Statement
abstract class JDBC3PreparedStatement extends CorePreparedStatement
class JDBC4PreparedStatement extends JDBC3PreparedStatement implements PreparedStatement, ParameterMetaData
That seems like a mess to me:
JDBC3Statement
implements some methods fromStatement
while it doesn't implement the interfaceCorePreparedStatement
incore
package depends onjdbc4
package
I'm not sure what's the intended use of the core
package, as it would always have dependencies on java.sql
anyway.
There are also some classes within org.sqlite
like SQLiteConnection
or SQLiteDataSource
.
I suppose there's some history behind that:
- JDBC 4 was introduced in version
3.8.2
along with Java 6 - moved to Java 8 in version
3.32.3.3
While i am no expert in JDBC, it seems JDBC 4.2 shipped with Java 8.
Given we only support Java 8, we could probably remove the JDBC3 package, and have a single JDBC4 package instead.
I'm not sure what to do with the core
package or the classes that are in org.sqlite
to be honest.
If anyone wants to chime in, I would be interested to hear your thoughts.