title: JDBC: Connection returning NULL, what to do?
body: <p>This is the output of the program given below:</p>
  
  <pre><code>Connection made!
  Schema Name:null
  
  Successfully connected to null
  Releasing all open resources ...
  </code></pre>
  
  <p>Inside establishConnection(), conn is initialized as null. Then the first statement inside the try block is supposed to establish a connection with the database, and the third statement is then printing the name of the current schema of conn. </p>
  
  <p>According to the <a href="http://docs.oracle.com/javase/7/docs/api/java/sql/Connection.html" rel="noreferrer">API</a>, <strong><em>getSchema() returns the current schema name or null if there is none.</em></strong></p>
  
  <p><strong>This means that there is no schema (I think the schema name is same as the database name) associated with conn? Can anyone suggest if I am correct in my anticipation, and also suggest why is that there is no schema or null associated with conn?</strong></p>
  
  <pre><code>public class ConnectDB {
  
      private Connection establishConnection() throws SQLException {
          Connection conn = null;
          try {
              conn = DriverManager.getConnection(
                      "jdbc:mysql://localhost:3306/test_final1", "root", "password");
              System.out.println("Connection made!");
              System.out.println("Schema Name:"+conn.getSchema()+"\n");
          } catch (SQLException sqle) {
              System.err.println("SQL Exception thrown while making connection");
              printSQLException(sqle);
          }
          return conn;
      }
  
      public static void main(String[] args) {
          ConnectDB cdb= new ConnectDB();
          Connection myconn=null;
          try{
              myconn=cdb.establishConnection();
              if(myconn!=null) System.out.println("Successfully connected to " + myconn.getSchema());
          }catch (SQLException e) {
                ConnectDB.printSQLException(e);
          } catch (Exception e) {
            e.printStackTrace(System.err);
          } finally {
            ConnectDB.closeConnection(myconn);
          }
  
      }
  </code></pre>