2016-11-25 70 views
0

在C#創建數據表,我用數據表來讀取&計算值從SQL查詢返回這樣在Java

string connString = @"your connection string here"; 
string query = "select * from table"; 

SqlConnection conn = new SqlConnection(connString);   
SqlCommand cmd = new SqlCommand(query, conn); 
conn.Open(); 

// create data adapter 
SqlDataAdapter da = new SqlDataAdapter(cmd); 
// this will query your database and return the result to your datatable 
da.Fill(dataTable); 

在java中,我沒有找到這樣的功能。評估&使用連接的計算複雜的操作,過濾器是這樣一個時間&存儲器與數據庫費時。因此,我喜歡在任何對象(如C#中的數據表)中的數據,然後通過lambda表達式計算更快。我想使用2D陣列但它們只能存儲特定類型的值即或者絃樂,INT等,並且還陣列不提供這樣的計算功能,如數據表一樣。

我有任何其他方式來實現相同的功能?

回答

0

簡單的解決方案使用javax.persistance。* JPA,定義persistance.xml你的連接網址,持久化單元的名稱。隨着本地查詢,你不需要知道ORM(對象關係映射)剛剛非標準SQL語法。然後簡單鑄造對象到對應的原語類型。

factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME); 
EntityManager em = factory.createEntityManager(); 
Query q = em.createNativeQuery("SELECT a.firstname, a.age FROM Author a"); 
List<Object[]> authors = q.getResultList(); 
for (Object[] a : authors) { 
    String first = (String)a[0]; 
    int last = (int)a[1]; 
} 

List<Object[]>就像2D數據表。