簡體   English   中英

如何從JDBC查詢中獲取所有元素

[英]How to get all the element from JDBC query

HI,

我有這樣的查詢

final Query contractQuery = cgnDao.getEntityManager().
            createNativeQuery("SELECT k.phrase, ak.type FROM key k INNER JOIN adkey ak USING (key_id) WHERE pck.pub_id =" + pid +" AND pck.c_id =" + campId );

我如何從查詢中獲取每個元素?

其中短語是字符串,類型是枚舉

在Java中

謝謝

參見JBoss JPA文檔上的 此鏈接和java2s上的此鏈接

簡而言之,您有一個查詢,可以在其上調用getResultList(),該查詢返回一個可以迭代的List。 看看JPA javadoc

另外,我建議您使用PreparedStatements,例如

String sqlQuery = "select * from tbl_spaceship where owner = ?";
Query q = entityManager.createNativeQuery(sqlQuery, SpaceShip.class);
q.setParameter( 1, "Han" );
q.getResultList();

優點是JPA提供程序將轉義輸入值。 在此特定用例中沒有必要,但良好的習慣永遠不會受到傷害。

首先,您不應該使用String串聯,而應該使用位置參數本機查詢只能移植位置參數綁定 )。 其次,對於返回標量值的本機查詢,結果將是List of Oject[] 因此結果可能如下所示:

String sql = "SELECT k.phrase, ak.type " + 
             "FROM key k INNER JOIN adkey ak USING (key_id) " +
             "WHERE pck.pub_id = ?1 AND pck.c_id = ?2";
Query q = em.createNativeQuery(sql);
q.setParameter(1, pubId);
q.setParameter(2, cId);
List<Object[]> results = q.getResultList();

參考

  • JPA 1.0規范
    • 第3.6.3節“命名參數”
    • 第3.6.6節“ SQL查詢”
    • 第4.6.4節“輸入參數”

您可以使用method的值從結果集中獲取枚舉實例

enum A {}
A.valueOf()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM