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节“输入参数”