2011-03-24 59 views
1

是否有從java中的數據庫中獲取值的最佳做法? 我的特殊的問題是:從數據庫中獲取值的好方法

  • 我如何可以訪問整個PROGRAMM數據庫(我用init方法靜態類被稱爲一次,然後sycronized塊)
  • 我怎麼能得到正確的對象類型?是否有一種方法,像Object getSingeValue(String query)...這樣的方法,然後在該方法中使用ResultMetaSet進行類型化,從而實現兼容性?
  • 什麼是插入或更新值的最佳方式?我知道是什麼類型,並希望把它...

做任何人都知道一個好的實現數據庫抽象層或一些東西,我可以使用?

謝謝!

+0

我用一點自制抽象jdbc但軟件現在比預期的大,數據庫處理程序現在不是我需要的東西...但ORM看起來不錯,我會嘗試它! – reox 2011-03-24 18:13:36

回答

3

你這裏有幾個選項:

  • JDBC - 對於低級別的訪問數據庫
  • ORM Hibernate等 - 對於更高級別的訪問

根據您的問題,這聽起來像您希望使用像Hibernate這樣的Object to Relational映射工具或其他基於JPA的ORM工具之一。這些通常會爲您提供一種查詢數據庫並返回完全形成的Java對象的高級方法。

回答您的問題:

如何從 整個程序

訪問數據庫,這通常不是由數據庫層,而是由像依賴一個設計模式解決的問題注入,它爲您提供了構建所有對象的方法,並將適當的依賴關係交給它們(例如數據庫連接)。請參閱Spring框架以獲取DI實例。

我該如何獲得正確的對象類型?

ORM工具通常會建立特定表和Java對象之間的關係。這就是說,即使有奧姆斯,你會在你需要的對象的「模板」出手,所以如果你寫你自己的,這樣的模式經常使用:

session.createCriteria(MyMappedObject.class).list() 

什麼是插入或更新值的最佳方式?

同樣,一個ORM會幫助和模式通常只是交出你想保存的對象。您可以使用外部配置(如XML或註釋),以便關係映射圖層的對象知道如何將對象轉換爲適當的行和列。在一個標準的ORM保存或更新,如Hibernate是如此的簡單:

session.saveOrUpdate(myObject); 

做任何人都知道一個好的實現數據庫抽象層或一些東西,我可以使用?

休眠或大多數其他JPA 2.0 ORM聽起來像你所需要的。