importPackage(Packages.rubbish.db);
importPackage(Packages.rubbish.db.rhino);
JsArrayExtension.extend();

var dbh = new RubbishDatabase();
dbh.logging = true;

dbh.connect("jdbc:hsqldb:hsql://localhost", "sa", "", function(dbh) {
  dbh.query("SELECT ID, NAME FROM PUBLISHER ORDER BY ID", function(row) {
    print(row.id + ": " + row.get("name"));
  });

  dbh.selectBy("PUBLISHER", "ID = ?", "01", function(row) {
    print(row.id + ": " + row.name);
  });

  var rows = dbh.selectBy("PUBLISHER", function(row) {
    row.id = "01";
  });

  rows.each(function(row) {
    print(row.id + ": " + row.get("name"));
  });
});
importPackage(Packages.rubbish.db);
importPackage(Packages.rubbish.db.rhino);
JsArrayExtension.extend();

var dbh = new RubbishDatabase();
dbh.logging = true;

dbh.connect("jdbc:hsqldb:hsql://localhost", "sa", "", function(dbh) {
  var selected = dbh.query("SELECT * FROM PUBLISHER").select(function(row) {
    return (row.id > 3);
  });

  for(var i in selected) {
    print(selected[i].id + ": " + selected[i].name);
  }

  var sql = new JsStatement("SELECT * FROM PUBLISHER WHERE ID=:id");
  sql.id = "01";
  print(dbh.getRow(sql));
});
importPackage(Packages.rubbish.db);

var dbh = new RubbishDatabase();
dbh.logging = true;

dbh.connect("jdbc:hsqldb:hsql://localhost", "sa", "", function(dbh) {
  dbh.updateBy("PUBLISHER", "WHERE ID = ?", "01", function(row) {
    row.name = "My Publishing";
    row.volumes=100;
  });

  dbh.query("SELECT * FROM PUBLISHER", function(row) {
    print(row.id + ": " + row.name + "(" + row.volumes + ")");
  });

  dbh.rollback();

  dbh.insertBy("PUBLISHER", function(row) {
    row.id="07";
    row.name="O'Reilly";
    row.volumes=1;
    row.update_date="2005-10-10";
    row.create_date="2005-40-10";
  });

  dbh.query("SELECT * FROM PUBLISHER", function(row) {
    print(row.id + ": " + row.name);
  });

  dbh.rollback();
});