使用Java Rest Web服务(jersey)手动Db连接

时间:2014-02-17 13:37:37

标签: java mysql rest connection jersey

我想知道是否有人可以帮我解决一个小问题。我正在尝试使用Jersey在Java中创建一个restfull服务。

但我找不到任何关于如何建立手动数据库连接的示例。如果我这样做,连接在查询数据库时返回nullpointer。

public DbConnection()
{
    try 
    {
        // This will load the MySQL driver, each DB has its own driver
        Class.forName("com.mysql.jdbc.Driver");
        // Setup the connection with the DB
        connection =     DriverManager.getConnection("jdbc:mysql://url/team_staging?"
                        + "user=X&password=X");
    }
    catch (ClassNotFoundException ex) 
    {
        Logger.getLogger(DbConnection.class.getName()).log(Level.SEVERE, null, ex);
    } 
    catch (SQLException ex) 
    {
        Logger.getLogger(DbConnection.class.getName()).log(Level.SEVERE, null, ex);
    }
}

有人能指出我在正确的方向吗?我不想使用任何 ORM。

我发现在netbeans中没有hibernate或自动生成的休息服务很难找到好的例子......

我的问候, AXL

1 个答案:

答案 0 :(得分:1)

我认为你避开ORM解决方案的本能是好的。

您正在编写Web服务,这意味着它至少部署在servlet / JSP引擎上(例如Tomcat)或完整的Java EE应用服务器。我将学习如何为您的应用服务器创建JNDI连接池。

您希望外部化连接参数(例如驱动程序,URL等)

我没有看到该连接的类成员。退出ctor后会发生什么?它超出了范围吗?这可以解释NPE。

我会这样写:

package persistence;

public class DatabaseUtils {
    private DatabaseUtils() {}

    public static Connection getConnection(String driver, String url, String username, String password) throws Exception {
        Class.forName(driver);
        return DriverManager.getConnection(url, username, password);
    }
}