zoukankan      html  css  js  c++  java
  • EJB>使用参数查询

    命令参数的格式为:“: +参数名”

    private String NameQuery(){
    //获取指定personid 的人员
    Query query = em.createQuery("select p from Person p where p.personid=:Id");
    query.setParameter("Id",new Integer(1));
    
    List result = query.getResultList();
    位置参数的格式为“?+位置编号
    @PersistenceContext
    protected EntityManager em;
    private String PositionQuery(){
    //获取指定personid 的人员
    Query query = em.createQuery("select p from Person p where p.personid=?1");
    query.setParameter(1,new Integer(1));
    List result = query.getResultList();
    Date 参数
    如果你需要传递java.util.Date 或java.util.Calendar 参数进一个参数查询,你需要使用一个特殊的setParameter()
    方法,相关的setParameter 方法定义如下:
    public interface Query
    {
    //命名参数查询时使用,参数类型为java.util.Date
    Query setParameter(String name, java.util.Date value, TemporalType temporalType);
    //命名参数查询时使用,参数类型为java.util.Calendar
    Query setParameter(String name, Calendar value, TemporalType temporalType);
    //位置参数查询时使用,参数类型为java.util.Date
    Query setParameter(int position, Date value, TemporalType temporalType);
    //位置参数查询时使用,参数类型为java.util.Calendar
    Query setParameter(int position, Calendar value, TemporalType temporalType);
    }
    上面方法用到的TemporalType 参数定义如下:
    package javax.persistence;
    public enum TemporalType {
    DATE, //java.sql.Date
    TIME, //java.sql.Time
    TIMESTAMP //java.sql.Timestamp
    }

    因为一个Date 或Calendar 对象能够描述一个真实的日期、时间或时间戳.所以我们需要告诉Query 对象怎么使用这些参数,我们把javax.persistence.TemporalType 作为参数传递进setParameter 方法,告诉查询接口在转换java.util.Date 或java.util.Calendar 参数到本地SQL 时使用什么数据库类型。

  • 相关阅读:
    Python中if __name__ == '__main__':作用
    mac 用macports给python装opencv
    (转)学习&使用技术的四种层次
    图像处理入门,一些简单的基于像素几何变换和实现
    基于水平投影,垂直投影的字符图像分割思路和代码实现
    转:Cannot make a static reference to the non-static解决办法
    BP神经网络学习和c++例子程序代码
    python中初始化一个数组用来存储多张图片
    假期第二周周总结
    假期第一周周总结
  • 原文地址:https://www.cnblogs.com/xqzt/p/5637325.html
Copyright © 2011-2022 走看看