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 24 October 2012

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