In this post I am explaining how to use the IN query in Cassandra from java. If you understand this example first you need to know the PreparedStatement and  BoundStatement’s in Cassandra using the JAVA Driver.
         For IN query example I created the usersdata table in Cassandra using CQLSH. I insert the values in the usersdata table.

The fallowing diagram illustrates the data of usersdata table .

           In the above diagram usersdata table user_name is the primary key .  so user_name used in IN query example.

     First create a MAVEN project using eclipse . In that project pom you can add the fallowing dependency

The fallowing program is explains the IN query in Cassandra from JAVA driver

import java.util.ArrayList;
import java.util.List;
import com.datastax.driver.core.BoundStatement;
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.PreparedStatement;
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Row;
import com.datastax.driver.core.Session;

 * @author Venkata Ramu Kandulapati
public class INStatementEx {
       public static Session session = null;
       public static final String KEYSPACE = "sample";
       public static final String TABLE_USERS_DATA = "usersdata";
       public static PreparedStatement inQueryPstmt = null;

//     Preparing a IN Query for cassandra
       public static final String SELECT_STMT_USING_IN = "SELECT * FROM   "+KEYSPACE+"."+TABLE_USERS_DATA+" WHERE user_name  IN :usersList ";
       public INStatementEx() {
              String serverIp ="";
              Cluster cluster = Cluster.builder()
              session = cluster.connect(KEYSPACE);
              inQueryPstmt = session.prepare(SELECT_STMT_USING_IN);
       public void useINQueryMethod() throws Exception{
              try {
                     BoundStatement inQueryBoundStmt = new BoundStatement(inQueryPstmt);
                     List<String> usersList = new ArrayList<String>();
                     inQueryBoundStmt.setList("usersList", usersList);
                     ResultSet rs = session.execute(inQueryBoundStmt);
                     if(rs != null) {
                           List<Row> usersRows = rs.all();
              } catch(Exception e) {
                     throw e;
       public static void main(String args[])throws Exception {
              try {
                     INStatementEx ins = new INStatementEx();
              } catch(Exception e) {
                     System.out.println("Exception in IN query"+e);

                                  In the above program first prepare a inQueryPstmt PreparedStatement for IN Statement.That PreparedStatement is initialized in BoundStatement.Then after which values you want to use in IN query that values prepared as a list that list is set to  BoundStatement.Then execute the BoundStatement .


  1. Nice post I have been searching for a useful post like this on salesforce course details, it is highly helpful for me and I have a great experience with this
    Salesforce Training  which is a best institute for career building program.

  2. This comment has been removed by the author.

  3. Great Article android based projects

    Java Training in Chennai Project Center in Chennai Java Training in Chennai projects for cse The Angular Training covers a wide range of topics including Components, Angular Directives, Angular Services, Pipes, security fundamentals, Routing, and Angular programmability. The new Angular TRaining will lay the foundation you need to specialise in Single Page Application developer. Angular Training Project Centers in Chennai