A basic CRUD Java application using the DataStax Java Driver for Apache Cassandra. The intent is to help users get up and running quickly with the driver. If you are having trouble, the complete code solution for GettingStarted.java can be found here.
- A running instance of Apache Cassandra® 2.1+
- Maven build automation tool
- Java 8
The resources/users.cql file provides the schema used for this project:
CREATE KEYSPACE demo
WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'};
CREATETABLEdemo.users (
lastname textPRIMARY KEY,
age int,
city text,
email text,
firstname text);All of our code is contained in the GettingStarted class.
Note how the main method creates a session to connect to our cluster and runs the CRUD operations against it.
Replace the default parameters in CqlSession.builder() with your own hostname, port and datacenter.
// TO DO: Fill in your own host, port, and data centertry (CqlSessionsession = CqlSession.builder()
.addContactPoint(newInetSocketAddress("127.0.0.1", 9042))
.withKeyspace("demo")
.withLocalDatacenter("datacenter1")
.build()) Fill the code in the methods that will add a user, get a user, update a user and delete a user from the table with the driver.
privatestaticvoidsetUser(CqlSessionsession, Stringlastname, intage, Stringcity, Stringemail, Stringfirstname) {
//TO DO: execute SimpleStatement that inserts one user into the tablesession.execute(
SimpleStatement.builder( "INSERT INTO users (lastname, age, city, email, firstname) VALUES (?,?,?,?,?)")
.addPositionalValues(lastname, age, city, email, firstname)
.build());
}privatestaticvoidgetUser(CqlSessionsession, Stringlastname) {
//TO DO: execute SimpleStatement that retrieves one user from the table//TO DO: print firstname and age of userResultSetrs = session.execute(
SimpleStatement.builder("SELECT * FROM users WHERE lastname=?")
.addPositionalValue(lastname)
.build());
Rowrow = rs.one();
System.out.format("%s %d\n", row.getString("firstname"), row.getInt("age"));
}privatestaticvoidupdateUser(CqlSessionsession, intage, Stringlastname) {
//TO DO: execute SimpleStatement that updates the age of one usersession.execute(
SimpleStatement.builder("UPDATE users SET age =? WHERE lastname =? ")
.addPositionalValues(age, lastname)
.build());
}privatestaticvoiddeleteUser(CqlSessionsession, Stringlastname) {
//TO DO: execute SimpleStatement that deletes one user from the tablesession.execute(
SimpleStatement.builder("DELETE FROM users WHERE lastname=?")
.addPositionalValue(lastname)
.build());
}