![](/img/trans.png)
[英]JDBC How to get all generated keys from single insert with many values query?
[英]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();
您可以使用method的值從結果集中獲取枚舉實例
enum A {}
A.valueOf()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.