code: public final Session createSession(String database) {
  
      CreateSessionRequest request = CreateSessionRequest.newBuilder().setDatabase(database).build();
      return createSession(request);
    }
docs: Creates a new session. A session can be used to perform transactions that read and/or modify
  data in a Cloud Spanner database. Sessions are meant to be reused for many consecutive
  transactions.
  
  <p>Sessions can only execute one transaction at a time. To execute multiple concurrent
  read-write/write-only transactions, create multiple sessions. Note that standalone reads and
  queries use a transaction internally, and count toward the one transaction limit.
  
  <p>Cloud Spanner limits the number of sessions that can exist at any given time; thus, it is a
  good idea to delete idle and/or unneeded sessions. Aside from explicit deletes, Cloud Spanner
  can delete sessions for which no operations are sent for more than an hour. If a session is
  deleted, requests to it return `NOT_FOUND`.
  
  <p>Idle sessions can be kept alive by sending a trivial SQL query periodically, e.g., `"SELECT
  1"`.
  
  <p>Sample code:
  
  <pre><code>
  try (SpannerClient spannerClient = SpannerClient.create()) {
  DatabaseName database = DatabaseName.of("[PROJECT]", "[INSTANCE]", "[DATABASE]");
  Session response = spannerClient.createSession(database.toString());
  }
  </code></pre>
  
  @param database Required. The database in which the new session is created.
  @throws com.google.api.gax.rpc.ApiException if the remote call fails