This activator project describes a classic CRUD application with Play 2.4.x, Scala and RethinkDB
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
app
conf
project
public
test
tutorial
.gitignore
LICENSE
README.md
activator
activator-launch-1.3.5.jar
activator.bat
activator.properties
build.sbt

README.md

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

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 play_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 : play-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
  • play-rethinkdb should now be accessible at localhost:9000

References