Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从JDBC查询中获取所有元素_Java_Sql_Orm_Jpa - Fatal编程技术网

Java 如何从JDBC查询中获取所有元素

Java 如何从JDBC查询中获取所有元素,java,sql,orm,jpa,Java,Sql,Orm,Jpa,嗨 我有这样的疑问 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 ); 如何从查询中获取每个元素 其中,短语是字符串,类型

我有这样的疑问

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 );
如何从查询中获取每个元素

其中,短语是字符串,类型是枚举

在爪哇


谢谢

您可以使用方法的值从结果集中获取枚举实例

enum A {}
A.valueOf()
看到和

简而言之,您有一个可以调用getResultList()的查询,该查询返回一个可以迭代的列表。看一看这张照片

另外,我建议使用PreparedStatements,比如

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

优点是JPA提供者将负责转义输入值。在这个特定的用例中没有必要,但良好的习惯从来没有伤害过你。

首先,你不应该使用字符串连接,而应该使用位置参数(只有位置参数绑定可以用于本机查询)。其次,对于返回标量值的本机查询,结果将是
项目[]
列表。因此,结果可能如下所示:

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();
String sql=“选择k.phrase,ak.type”+
“从密钥k内部使用(密钥id)连接adkey ak”+
“其中pck.pub_id=?1和pck.c_id=?2”;
Query q=em.createNativeQuery(sql);
q、 setParameter(1,pubId);
q、 设置参数(2,cId);
List results=q.getResultList();
工具书类
  • JPA1.0规范
    • 第3.6.3节“命名参数”
    • 第3.6.6节“SQL查询”
    • 第4.6.4节“输入参数”