2016-11-25 46 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数据表。