SQLClient

From GNUstepWiki
Revision as of 07:26, 30 December 2006 by Rfm (talk | contribs)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
This article or section is a stub (i.e., in need of additional material).
You can help us by expanding it


Lightweight database abstraction layer.

Current Version: 1.3.0

  • Released: Dec 24, 2006
  • Licensed: LGPL

Overview

The SQLClient library is designed to provide a simple interface to SQL databases for GNUstep applications. It does not attempt the sort of abstraction provided by the much more sophisticated GDL2 library but rather allows applications to directly execute SQL queries and statements.

SQLClient provides for the Objective-C programmer much the same thing that JDBC provides for the Java programmer (though SQLClient is a bit faster, easier to use, and easier to add new database backends for than JDBC).

Features

  • Simple API for executing queries and statements... a variable length sequence of comma separated strings and other objects (NSNumber, NSDate, NSData) are concatenated into a single SQL statement and executed.
  • Simple API for combining multiple SQL statements into a single transaction which can be used to minimise client-server interactions to get the best possible performance from your database.
  • Supports multiple sumultaneous named connections to a database server in a thread-safe manner.
  • Supports multiple simultaneous connections to different database servers with backend driver bundles loaded for different database engines. Clear, simple subclassing of the abstract base class to enable easy implementation of new backend bundles.
  • Configuration for all connections held in one place and referenced by connection name for ease of configuration control. Changes via NSUserDefaults can even allow reconfiguration of client instances within a running application.
  • Thread safe operation... The base class supports locking such that a single instance can be shared between multiple threads.
  • Supports batching of statements into ma signle transaction to minimise client-server interaction overheads.
  • Has backends for postgresql, mysql, sqlite and jdbc (the latter allowing you to use any database for which jdbc drivers exist , but suffering from the performance overhead of going through java).

Maintainer

Richard frith-Macdonald

Related Links