Introducing Socket Firewall: Free, Proactive Protection for Your Software Supply Chain.Learn More
Socket
Book a DemoInstallSign in
Socket

nobatis

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

nobatis

simple mybatis-like dao for nodejs

latest
Source
npmnpm
Version
0.0.7
Version published
Maintainers
1
Created
Source

nobatis

This is extremely experimental stuff

This is a simple "mybatis-like" dao for nodejs.

Features

  • TBW ...

Install

npm install nobatis

or

npm install git@github.com:iolo/node-nobatis.git

How to Get DataSource

  • prepare configurations:

var config = {
  "dataSource": {
    "driver": "mariasql",
    "host": "localhost",
    "port": 3306,
    "user": "root",
    "password": "",
    "db": "test"
  },
  "queries": {
    "test1.selectAll": "SELECT * FROM test1",
    "test1.select": "SELECT * FROM test1 WHERE id=?",
    "test1.insert": "INSERT INTO test1(name) VALUES(:name)",
    "test1.update": "UPDATE test1 SET name=:name WHERE id=:id",
    "test1.delete": "DELETE FROM test1 WHERE id=?"
  }
};

or you can write configurations to a file(json module). 3. import nobatis module


var nobatis = require('nobatis');
  • create DataSource with configutaion:

var dataSource = nobatis.createDataSource(config);

or create one with a configuration file(json module):


var dataSource = nobatis.createDataSource(require('./config'));

or get the default one:


var dataSource = nobatis.createDataSource();
  • now openSession():

var session = null;
try {
  session = dataSource.openSession();
  // use session here …
} finally {
  session && session.close();
}

or withSession():


dataSource.withSession(function (session) {
  // use session here ...
});

How to Execute Queries

  • select multiple rows

session.select('test1.selectAll', [])
.then(function(rows) {
  ...
}).fail(function(err) {
  ...
});
  • select rows with row bounds

session.select('test1.selectAll', [], {offset:2, limit:2})
.then(function(rows) {
  ...
})
.fail(function(err) {
  ...
});
  • select a single row

session.selectOne('test1.select', \[1])
.then(function(row) {
  ...
.fail(function(err) {
  ...
});
  • insert new row

session.insert('test1.insert', {name:'a'})
.then(function(insertId) {
  ...
.fail(function(err) {
  ...
});
  • update row(s)

session.update('test1.update', {id:1, name:'a'})
.then(function(affectedRows) {
  ...
.fail(function(err) {
  ...
});
  • delete row(s)

session.destroy('test1.delete', \[1])
.then(function(affectedRows) {
  ...
.fail(function(err) {
  ...
});

How to Create DAO

  • prepare dao object

var nobatis = require('nobatis');
var dataSource = require('nobatis').createDataSource(config);
var dao = nobatis.createDao(dataSource, {
  table: 'test1',
  primaryKey: 'id',
  primaryKeyGenerated: true,
  defaults: function () {
    return {
      id: 0,
      name: '',
      created: new Date()
    };
  }
});
  • create new object with default attributes

var obj = dao.createNew();
  • create new object with custom attributes

var obj = dao.createNew({name:'foo'});
  • check the object is saved or not

dao.isNew(obj);
  • select an object by primary key

dao.load(pk)
.then(function (obj) {
  ...
.fail(function(err) {
  ...
});
  • insert/update an object

dao.save(obj)
.then(function (affectedRow-or-insertId) {
  ...
.fail(function(err) {
  ...
});
  • insert/update an object and reload it

dao.save(obj, true)
.then(function (obj) {
  ...
.fail(function(err) {
  ...
});
  • delete an object by primary key

dao.destroy(pk)
.then(function (success_or_not) {
  ...
.fail(function(err) {
  ...
});
  • select all rows

dao.all()
.then(function (rows) {
  ...
.progress(function (row) {
  ...
.fail(function(err) {
  ...
});
  • select all rows with bounds

dao.all({offset:10, limit:10})
.then(function (rows, numRows) {
  ...
.progress(function (row) {
  ...
.fail(function(err) {
  ...
});
  • see also [https://github.com/kriskowal/q]

  • TBW

FAQs

Package last updated on 22 Feb 2013

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts