2014-02-17 84 views
1

我想知道是否有人可以帮我一个小问题。我正在尝试使用Jersey在Java中创建restfull服务。手动DbConnection与Java Rest Webservice(球衣)

但我找不到任何关于如何进行手动数据库连接的示例。如果我这样做,连接在查询数据库时返回一个空指针。

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自动生成REST服务很好的例子......

我的问候, 的Axl

+0

分享异常跟踪 –

+0

有如果您使用JAX-RS与否,它只是使用JDBC没有什么区别。关于如何应用这些资料,我提供了大量的资料,我建议你使用与JAX-RS无关的例子,但只是“纯Java”。 – Gimby

回答

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); 
    } 
}