1. 程式人生 > >Cassandra2.0以後的新API類和介面總結

Cassandra2.0以後的新API類和介面總結

總的來說,cassandra新增了一個包,名字:com.datastax.driver.core

這個包提供了很多api類和介面,讓在程式碼中對cassandra資料庫的操作變得更容易和更簡潔了。

首先從建立一個連線說起

1. com.datastax.driver.core.PoolingOptions連線池類

PoolingOptions pools = new PoolingOptions();

   pools.setCoreConnectionsPerHost(HostDistance.LOCAL,2);//和叢集中每臺機器最少儲存著兩個連線

   pools.setMaxConnectionsPerHost(HostDistance.LOCAL,100);//和叢集中每臺機器最多100個連線

   pools.setIdleTimeoutSeconds(10);//超時時間

   pools.setMaxRequestsPerConnection(HostDistance.LOCAL,100);//每個連線最多接受100個請求

2. com.datastax.driver.core.Cluster叢集類

Clustercluster= new Cluster.Builder()

.addContactPoints(dataStaxConfig.getHosts()).withPort(dataStaxConfig.getPort())

.withPoolingOptions(pools)

.withSocketOptions(newSocketOptions().setTcpNoDelay(true)

.setSendBufferSize(dataStaxConfig.getSendBufferSize())

.setReceiveBufferSize(dataStaxConfig.getReceiveBufferSize())

.setConnectTimeoutMillis(6000)

.setReadTimeoutMillis(180000)

) .build();

-- dataStaxConfig.getHosts()核心節點ip,dataStaxConfig.getPort()埠,.withPoolingOptions(pools)繫結的執行緒池,withSocketOptions網路互動sock的引數配置

3.com.datastax.driver.core.Session會話類

Session session =cluster.connect(dataStaxConfig.getKeyspaceName());//選擇某個表空間,獲得會話控制代碼,通過該會話控制代碼操作cassandra資料庫,比如Session.execute(String cql)

4. 各種Statement類

跟jdbc不同,cassandra雖然也提供各種Statement類,但是用法卻不一樣。Jdbc是用Statement. Execute(sql),而cassandra是用Session.execute(Statement)

比如SimpleStatement

SimpleStatementStatement s = new SimpleStatement("select *  from zrf_test");

session.execute(s);

比如BoundStatement / PreparedStatement

PreparedStatement  pre=getSession().prepare("select * fromzrf_test where serid=? ");

pre.setConsistencyLevel(type);//設定資料一致性

BoundStatementboundStatement = new BoundStatement(pre);

boundStatement.bind(“123”);

比如BatchStatement/BuiltStatement

因為這兩個不是常用的,以後再完善

5.com.datastax.driver.core.ResultSet

ResultSetresult= session. .execute(boundStatement);

--總而言之,獲取連線會話操作sql語句的整個正常流程就是這樣了,時間衝忙,趕著回去看電影,後續再完善。