Nightly Patch Machine

    jdbc-pro

    0.0.15 • Public • Published

    node-jdbc

    JDBC Wrapper for node.js

    Latest Version

    0.0.14

    Support for adding multiple JARs to the classpath has been added. Use the libs array as shown in the initialize section below. As of release 0.0.9, the minimum version of node.js has been increased to v0.10. If you need to use this with node.js v0.8, use version 0.0.8 of node-jdbc.

    Please visit node-jdbc for information on installing with npm.

    Status

    Build Status

    Usage

    Check out test-hsqldb.js for a usage example.

    Initialize

    var jdbc = new ( require('jdbc') );
     
    // There are 3 methods to supply user/password combinations
    // In the URL
    var configWithUserInUrl = {
      // Required
      libpath: __dirname + 'path/to/jdbc.jar',
      drivername: 'com.java.driverclass',
      // Check your driver docs for supplying the user/password in the URL.
      url: 'url/to/database;user=SA;password=',
      
      // Optional
      libs: [__dirname + 'path/to/other/jars.jar'],
    };
     
    // As key/value pairs.
    var configWithUserInConfig = {
      // Required
      libpath: __dirname + 'path/to/jdbc.jar',
      drivername: 'com.java.driverclass',
      url: 'url/to/database',
      
      // Optional
      libs: [__dirname + 'path/to/other/jars.jar'],
      user : 'SA',
      password: ''
    };
     
    // As an array.
    var configWithPropertiesInConfig = {
      // Required
      libpath: __dirname + 'path/to/jdbc.jar',
      drivername: 'com.java.driverclass',
      url: 'url/to/database',
      
      // Optional
      libs: [__dirname + 'path/to/other/jars.jar'],
      properties: [
        ['user', 'SA'],
        ['password','']
      ]
    };
     
    var config = {
      // Required
      libpath: __dirname + 'path/to/jdbc.jar',
      drivername: 'com.java.driverclass',
      url: 'url/to/database',
      
      // Optional
      libs: [__dirname + 'path/to/other/jars.jar'],
      user: 'user',
      password: 'secret',
    };
     
    jdbc.initialize(config, function(err, res) {
      if (err) {
        console.log(err);
      }
    });

    Open Connection, Execute Queries, Close

    var genericQueryHandler = function(err, results) {
      if (err) {
        console.log(err);
      } else if (results) {
        console.log(results);
      }
      
      jdbc.close(function(err) {
        if(err) {
          console.log(err);
        } else {
          console.log("Connection closed successfully!");
        }
      });
     
    };
     
    jdbc.open(function(err, conn) {
      if (conn) {
        // SELECT statements are called with executeQuery
        jdbc.executeQuery("SELECT * FROM table", genericQueryHandler);
     
        // Table modifying statements (UPDATE/INSERT/DELETE/etc) are called with executeUpdate
        jdbc.executeUpdate("UPDATE table SET column = value", genericQueryHandler);
     
        // Use non-generic callbacks to handle queries individually and/or to nest queries
        jdbc.executeUpdate("INSERT INTO table VALUES (value)", function(err, results) {
          
          if(results > some_arbitrary_value) {
            jdbc.executeQuery("SELECT * FROM table where column = value", genericQueryHandler);
          }
        
        });
      }
    });
     
     

    API

    initialize(config, callback)

    • see above example for config object
    • callback(error)

    open(callback)

    • opens a new connection
    • callback(error)

    close(callback)

    • closes any existing connection
    • callback(error)

    executeQuery(sql, callback)

    • SELECT commands.
    • callback(error, rset)

    executeUpdate(sql, callback)

    • table modifying commands (INSERT, UPDATE, DELETE, etc).
    • callback(error, num_rows) where @num_rows is the number of rows modified

    Install

    npm i jdbc-pro

    DownloadsWeekly Downloads

    1

    Version

    0.0.15

    License

    MIT

    Last publish

    Collaborators

    • shak