如何在java中准备查询参数

时间:2011-12-17 17:49:12

标签: java java-ee jpa

来自PHP / CodeIgniter的后台,其中运行查询就像......一样简单。

$this->db->query('SELECT * FROM users WHERE id = ?', array(
    $userId
));

我正在尝试用Java完成类似的事情。我知道直接运行查询可以像......一样简单。

    TypedQuery<Guest> query = em.createQuery(
        "SELECT g FROM Guest g ORDER BY g.id", Guest.class);
    return query.getResultList();

但是如何在查询中注入参数?

1 个答案:

答案 0 :(得分:2)

您可以使用命名参数或位置参数。

命名参数
 SELECT g FROM Guest g WHERE g.name = :name

然后你可以在你的查询参考上写这个:
query.setParameter("name", aName)

位置参数 SELECT g FROM Guest g WHERE g.name = ?1

然后你可以在你的查询参考上写这个:
query.setParameter(1, aName);