2014-02-17 110 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); 
    } 
}