6 package com.vesoft.nebula.client.graph;
8 import com.vesoft.nebula.Value;
9 import com.vesoft.nebula.client.graph.data.ResultSet;
10 import com.vesoft.nebula.client.graph.exception.IOErrorException;
11 import com.vesoft.nebula.client.graph.net.Session;
12 import com.vesoft.nebula.client.graph.net.SessionState;
13 import com.vesoft.nebula.client.graph.net.SyncConnection;
14 import java.io.Serializable;
15 import java.util.HashMap;
17 import java.util.concurrent.atomic.AtomicBoolean;
18 import java.util.concurrent.atomic.AtomicReference;
19 import org.slf4j.Logger;
20 import org.slf4j.LoggerFactory;
24 private static final long serialVersionUID = -88438249377120255L;
26 private final Logger log = LoggerFactory.getLogger(this.getClass());
28 private final long sessionID;
29 private final int timezoneOffset;
31 private final AtomicReference<SessionState> state =
new AtomicReference<>();
33 private final AtomicBoolean isReleased =
new AtomicBoolean(
false);
37 this.connection = connection;
38 this.sessionID = sessionID;
39 this.timezoneOffset = timezoneOffset;
40 this.state.set(state);
43 public long getSessionID() {
47 public Boolean isIdle() {
51 public Boolean isUsed() {
55 public boolean isUsedAndSetIdle() {
59 public boolean isIdleAndSetUsed() {
64 return new ResultSet(connection.execute(sessionID, stmt), timezoneOffset);
67 public ResultSet executeWithParameter(String stmt, Map<String, Object> parameterMap)
69 Map<byte[], Value> map =
new HashMap<>();
71 return new ResultSet(connection.executeWithParameter(sessionID, stmt, map), timezoneOffset);
74 public void release() {
75 if (isReleased.get()) {
78 if (isReleased.compareAndSet(
false,
true)) {
80 connection.signout(sessionID);
82 }
catch (Exception e) {
The Session is an object that operates with nebula-graph.
static Value value2Nvalue(Object value)
convert java value type to nebula thrift value type