Java 连接对象返回空值

Java 连接对象返回空值,java,mysql,eclipse,jdbc,connection,Java,Mysql,Eclipse,Jdbc,Connection,我试图创建一个类,允许我通过JDBC连接到mySQL数据库,但连接返回的对象为空。我认为错误在于我没有在异常中使用错误信息消息,而是返回空值 删除返回null语句导致错误:此方法必须返回连接类型的结果 return conn; } catch (Exception e) { // return null; e.printStackTrace(); } } 同时添加返回null和e.printStackTrace()导致无法访问的代码错误 return conn

我试图创建一个类,允许我通过JDBC连接到mySQL数据库,但连接返回的对象为空。我认为错误在于我没有在异常中使用错误信息消息,而是返回空值

删除
返回null语句导致错误:此方法必须返回连接类型的结果

    return conn;
} catch (Exception e) {
  // return null;
   e.printStackTrace();
   }

}
同时添加
返回null
e.printStackTrace()导致无法访问的代码错误

    return conn;
} catch (Exception e) {
   return null;
   e.printStackTrace();
   }
我的代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class ServerConn
{
public Connection OpenDatabase() {
    try {
    Class.forName( "com.mysql.jdbc.Driver" ) ;
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/promitheas?user=me&password=iwontsay") ;
        return conn;
    } catch (Exception e) {
       return null;
    }
    }

    public ResultSet dbQuery(String sql)
    {
    Connection cn = OpenDatabase();
     if (!(cn == null)){
       try {
         Statement stmt = cn.createStatement();
         ResultSet rs = stmt.executeQuery(sql);
         return rs;
        } catch (Exception e) {
       return null;}
    }
    return null;
    }

    public ServerConn(){}
    }
那是非法的。并导致
无法访问的代码错误
,因为您在
返回后编写代码

    return conn;
} catch (Exception e) {
   e.printStackTrace();
    return null;
   }
除此之外,从捕集区回来闻起来像是一个设计问题。重新考虑一下。

使用一个返回语句更好(更容易理解)

 public Connection OpenDatabase() {
      Connection conn =null;
        try {
         Class.forName( "com.mysql.jdbc.Driver" ) ;
         conn  = DriverManager.getConnection("jdbc:mysql://localhost/promitheas?user=me&password=iwontsay") ;
         } catch (Exception e) {
                  e.printStackTrace();
         }
         return conn;//returns null in case of exception.
  }

在catch块中返回null会导致什么设计问题?
 public Connection OpenDatabase() {
      Connection conn =null;
        try {
         Class.forName( "com.mysql.jdbc.Driver" ) ;
         conn  = DriverManager.getConnection("jdbc:mysql://localhost/promitheas?user=me&password=iwontsay") ;
         } catch (Exception e) {
                  e.printStackTrace();
         }
         return conn;//returns null in case of exception.
  }