Skip to content

actsasflinn/java-tokyotyrant

Repository files navigation

Tokyo Tyrant Java binding
=========================

This is an unofficial Tokyo Tyrant Java binding based on the official Tokyo
Cabinet Java binding.  At the moment it only supports Table DB and
Table Query.

To do
-----

1. better testing
2. Update documentation
3. add support for hash database
4. improve usability of the classes

Install
-------

$ ./configure
$ make
$ make check
$ sudo make install


Example
-------

import tokyotyrant.*;
import java.util.*;

public class TokyoTyrant {
  // run an instance of TokyoTyrant
  public static void main(String args[]){
    TCRDB tcrdb = new TCRDB();

    // open the database
    if(!tcrdb.open("127.0.0.1", 1978)){
      int ecode = tcrdb.ecode();
      System.err.println("open error: " + tcrdb.errmsg(ecode));
    }

    // store a record
    String pkey = new Long(tcrdb.genuid()).toString();
    Map cols = new HashMap();
    cols.put("name", "mikio");
    cols.put("age", "30");
    cols.put("lang", "ja,en,c");
    if(!tcrdb.put(pkey, cols)){
      int ecode = tcrdb.ecode();
      System.err.println("put error: " + tcrdb.errmsg(ecode));
    }

    // store another record
    cols = new HashMap();
    cols.put("name", "falcon");
    cols.put("age", "31");
    cols.put("lang", "ja");
    cols.put("skill", "cook,blog");
    if(!tcrdb.put("x12345", cols)){
      int ecode = tcrdb.ecode();
      System.err.println("put error: " + tcrdb.errmsg(ecode));
    }

    // search for records
    RDBQRY qry = new RDBQRY(tcrdb);
    qry.addcond("age", RDBQRY.QCNUMGE, "20");
    qry.addcond("lang", RDBQRY.QCSTROR, "ja,en");
    qry.setorder("name", RDBQRY.QOSTRASC);
    qry.setlimit(10, 0);
    List res = qry.search();
    Iterator it = res.iterator();
    while(it.hasNext()){
      String rkey = new String((byte[])it.next());
      Map rcols = tcrdb.get(rkey);
      System.out.println("name:" + rcols.get("name"));
    }

    // close the database
    if(!tcrdb.close()){
      int ecode = tcrdb.ecode();
      System.err.println("close error: " + tcrdb.errmsg(ecode));
    }
  }
}

About

Java binding (JNI) for Tokyo Tyrant

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published