Contact Us | Site Map
Firebird is used by approximately 1 million of software developers worldwide. High compatibility with industry standards on many fronts makes Firebird the obvious choice for developing interoperable applications for homogeneous and hybrid environments.
Join Firebird!
Join Firebird Foundation to support Firebird SQL development and receive multiple bonuses
Follow Us
Select your media preference
Google+ Twitter Facebook RSS
Subscribe to Firebird’s Newsletter to receive the latest news
About Jaybird
Jaybird is a JCA/JDBC driver suite for the Firebird database server. Historically, Borland opened sources of the type 3 JDBC driver called InterClient. However, due to inherent limitations of the Firebird client library it, the type 3 driver was considered a dead end, and the Firebird team developed a pure Java implementation of the wire protocol. This implementation became the basis for JayBird.

The Jaybird driver is based on both the new JCA standard for application server connections to enterprise information systems and the well known JDBC standard. The JCA standard specifies an architecture in which an application server can co-operate with a driver so that the application server manages transactions, security, and resource pooling, while the driver supplies only the connection functionality. Although similar to the JDBC 2 XADataSource idea, the JCA specification is considerably clearer on the division of responsibility between the application server and driver.

Jaybird requires at least JDK 1.3.1 to compile and run properly.

The JayBird JCA/JDBC driver is distributed free of charge under the GNU Lesser General Public License (LGPL). Text of the license can be obtained from

For more information please refer to the Jaybird Wiki pages.

Database connectivity in Java is fairly well standardised. The main standard is the JDBC specification (java.sql.* classes, current version 3.0). It defines the concepts for Connection, Statement, PreparedStatement, CallableStatement and ResultSet. It also defines the standard data types in Java.

java.sql.Connection represents a physical connection to a database. Each connection has one and only one transaction associated with it. This transaction is started when the connection is opened and can be either committed or rolled back. You can specify different transaction isolation levels (none, read uncommitted, read committed, repeatable read and snapshot). The connection instance is also a factory for different statement objects.

java.sql.Statement is the most simple SQL statement. You can execute either a query or an update. If you execute a query (SELECT statement), you obtain an instance of a ResultSet. If you execute update, you get number of modified rows.

java.sql.ResultSet represents a result set returned from the server. The most simple result set is an iterator. After the request is executed, you can iterate through all of the result set and get the data using data access methods (getInt(colNumber), getString(colNumber), etc.).

java.sql.PreparedStatement represents a prepared statement. You can prepare it once, then set parameters and execute it many times.

java.sql.CallableStatement is a wrapper for a stored procedure call. I think it was introduced just to make everybody happy, because some database servers seem to have problems executing stored procedures using either java.sql.Statement or java.sql.PreparedStatement.

Also, there is a lot of metadata information associated with each of the objects (database features, supported data types, fetch size, etc.).

Home About Firebird Documentation Downloads Community Support Development Case Studies Back to Top
This site and the pages contained within are Copyright © 2000-2015, Firebird Project. Firebird® is a registered trademark of Firebird Foundation Incorporated. Developed by DQ Team.