Prezi

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in the manual

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Jaybird: Java and Firebird

Jaybird presentation, Firebird Conference 2012, Luxembourg
by Mark Rotteveel on 15 October 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Jaybird: Java and Firebird

Jaybird
Firebird and Java

Mark Rotteveel,
Jaybird developer

Introduction
C#
Java
SQL
Mark Rotteveel
Delft, The Netherlands
Tester
JDBC
Java
DataBase
Connectivity
What is JDBC?
A Java specification for connecting to relational databases
A set of interfaces to be implemented by database drivers
Requirements and behaviours for database independence
Some of the JDBC interfaces
Example: connecting and querying
Parametrized queries and metadata
Jaybird
Firebird JCA/JDBC driver
Implements JDBC and related specifications like
JCA (Java Connection Architecture) and JTA (Java Transaction API)
Firebird specific tools like access to Service API
Jaybird 2.2
2.2.0: July 2012,
2.2.1: October 2012
Downloads since July over 10,000 on SourceForge and over 600 on Maven
What is new in Jaybird 2.2?
Support for getGeneratedKeys()
Retrieval of columns on INSERT (or UPDATE/DELETE)
Improved JDBC 4.x support
JDBC 4.0
Automatic driver loading
java.sql.Wrapper support
support for chained exceptions
get/setClientInfo() on Connection
JDBC 4.1
try-with-resources support
Statement closeOnCompletion support
various improvements to JDBC compliance
Improved support for LibreOffice/OpenOffice Base
Differences in interpretation of JDBC spec
Solution:
Separate protocol: jdbc:firebirdsql:oo:
Jaybird on Maven
Survey
Two week survey in September 2012
132 response
Full results on http://www.firebirdnews.org/?p=7701
Jaybird use
Most respondents (91%) use Jaybird in development
Majority already uses Jaybird 2.2
Pure java wire protocol most popular
Java versions
Java 6 and 7 use almost equal (77.7% vs 74.4%)
However, Java 6 still biggest as primary version (58.5%)
Oracle will end public support of Java 6 in 2013
Firebird versions
Firebird 2.5 most used, followed by 2.1.
Areas of improvement
Extra focus for JDBC compliance, and effort to get better support in thirdparty tools (Hibernate, EclipseLink)
OS Platforms
55% use both Windows and Linux
Maven (http://maven.apache.org/ ) :
software dependency management
build tool
central repository for dependencies.
Declarative dependency for Jaybird:
<dependency>
<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird-jdk17</artifactId>
<version>2.2.1</version>
</dependency>
Future
Plans for Jaybird 2.3 and beyond
Less ...
Removal of support for Java 5 and earlier
Deletion of (broken) connection pool implementation
No support for Firebird 1.x
(it will probably work, but bugs won't be fixed)
(75% of respondents agree, 20% didn't care)
(third party tools available)
... Is More
Improved JDBC 4.x support and compliance
Wire protocol improvements
Improve support in third party tools
SRP support (for Firebird 3.0)
(eg JPA (Hibernate, EclipseLink) and IDEs)
(reduce latency)
(implement more optional methods,
test and correct current behaviour)
(probably in Jaybird 3.0)
The End
Questions?
Thanks for your attention
Developer
Benefits of JDBC
One consistent API across all relational databases
(although you will need to account for some differences)
Large number of tools, frameworks and libraries that simply work
Frameworks and tools that work with database or driver-specific tweaks
(for example ORM tools like Hibernate and EclipseLink)
(SQuirreL, SpringJDBC, connectionpools, distributed transactions)
When resultsets are closed,
how role-assigned rights are returned
(short demo)
Team changes
Roman Rokytskky has been the lead-developer of Jaybird for the last few years (his first Jaybird commit was in december of 2001, I don't know when he became the lead-dev).
Lately he has been unable to spend a lot of time on Jaybird, so he has asked me to assume the role of lead-dev of Jaybird
I would like to thank Roman for all his effort these last 11 years
Python
Nerd
SciFi
Reasons for the survey
Small team: need to prioritize
Curiosity about our users
Decision on dropping Java 5 support or not
Checking if our ideas match with user expectation
(and not only in tools)
Removal of a number of deprecated APIs and methods
And hopefully: faster release cycle
See the full transcript