Skip to content

anand-singh/playing-rethinkdb

Repository files navigation

        _                _                                  _    _      _         _        _  _     
 _ __  | |  __ _  _   _ (_) _ __    __ _         _ __  ___ | |_ | |__  (_) _ __  | | __ __| || |__  
| '_ \ | | / _` || | | || || '_ \  / _` | _____ | '__|/ _ \| __|| '_ \ | || '_ \ | |/ // _` || '_ \ 
| |_) || || (_| || |_| || || | | || (_| ||_____|| |  |  __/| |_ | | | || || | | ||   <| (_| || |_) |
| .__/ |_| \__,_| \__, ||_||_| |_| \__, |       |_|   \___| \__||_| |_||_||_| |_||_|\_\\__,_||_.__/ 
|_|               |___/            |___/                                                            

This activator project describes a classic CRUD application with Play 2.4.x, Scala and RethinkDB

Building Reactive Play application with RethinkDB

This is a CRUD application, backed by a RethinkDB database. It demonstrates:

  • Handling asynchronous results, Handling time-outs
  • Achieving, Futures to use more idiomatic error handling.
  • Accessing RethinkDB, using Java ReQL command reference.
  • Achieving, table pagination and sorting functionality using interactive FooTable plugin.
  • Replaced the embedded JS & CSS libraries with WebJars.
  • Play and Scala-based template engine implementation
  • Integrating with a CSS framework (Twitter Bootstrap). Twitter Bootstrap requires a different form layout to the default one that the Play form helper generates, so this application also provides an example of integrating a custom form input constructor.
  • Used Bootswatch with Twitter Bootstrap to improve the look and feel of the application

Dependency


The rethinkdb-driver is distributed using Maven Central so it can be easily added as a library dependency in your Play Application's SBT build scripts, as follows:

libraryDependencies += "com.rethinkdb" % "rethinkdb-driver" % "2.2-beta-1"

RethinkDb


  • Installing RethinkDB : install
  • Installing the Java driver : rethinkdb-driver
  • Ten-minute guide with RethinkDB and Java : RethinkDB Java
  • Start RethinkDB using rethinkdb command and hit http://localhost:8080/
  • Create playing_rethinkdb database and table r_employees with default configuration
Usage of RethinkDB Java driver

You can use the drivers from Java like this:

import com.rethinkdb.RethinkDB;
import com.rethinkdb.gen.exc.ReqlError;
import com.rethinkdb.gen.exc.ReqlQueryLogicError;
import com.rethinkdb.model.MapObject;
import com.rethinkdb.net.Connection;

public static final RethinkDB r = RethinkDB.r;

Connection conn = r.connection().hostname("localhost").port(28015).connect();

r.db("test").tableCreate("tv_shows").run(conn);
r.table("tv_shows").insert(r.hashMap("name", "Star Trek TNG")).run(conn);

Please check RConnection.scala and RDatabase.scala


Now Play


  • The Github code for the project is at : playing-rethinkdb
  • Clone the project into local system
  • To run the Play framework 2.4.x, you need JDK 8 or later
  • Install Typesafe Activator if you do not have it already. You can get it from here: http://www.playframework.com/download
  • Execute activator clean compile to build the product
  • Execute activator run to execute the product
  • Employee-Self-Service should now be accessible at localhost:9000

References