`

JPQL查询语句(Java Presistence Query Language)(转)

    博客分类:
  • JPA
 
阅读更多
1.Query createQuery(String qlString)

根据JPA的查询语句创建一个查询对象Query,如下面的代码:

Query q= em.createQuery(""SELECT t FROM Topic t WHERE t.topicTitle LIKE :topicTitle")");Query createNativeQuery(String sqlString)

    使用本地数据库的SQL语句创建一个Query对象,Query通过getResultList()方法执行查询后,返回一个List结果集,每一行数据对应一个Vector。


2.Query

    JPA使用javax.persistence.Query接口代表一个查询实例,Query实例由EntityManager通过指定查询语句构建。该接口拥有众多执行数据查询的接口方法:
n         Object getSingleResult():执行SELECT查询语句,并返回一个结果;
n         List getResultList() :执行SELECT查询语句,并返回多个结果;
n         Query setParameter(int position, Object value):通过参数位置号绑定查询语句中的参数,如果查询语句使用了命令参数,则可以使用Query setParameter(String name, Object value)方法绑定命名参数;
n         Query setMaxResults(int maxResult):设置返回的最大结果数;
n         int executeUpdate():如果查询语句是新增、删除或更改的语句,通过该方法执行更新操作。
通过下面测试方法进行说明:

@Test
    public void query1() {//单条查询
       EntityManagerFactory factory = Persistence.createEntityManagerFactory("itcast");
       EntityManager em = factory.createEntityManager();
       Query query = em.createQuery("select count(t) from Buyer t where t.username = ?1");
       //select t 之类的是不能省略,当底层是hibernate时可以省略。
       //输入的参数可以用":username", "?1"问号加上序号,序号自己指定
       query.setParameter(1, "aa");
       Buyer buyer = (Buyer)query.getSingleResult();
//当确定只有一条记录时用
       //System.out.println(buyer.getUsername());
       em.close();
       factory.close();
      
    }
    @Test
    public void query2() {//多条查询
       EntityManagerFactory factory = Persistence.createEntityManagerFactory("itcast");
       EntityManager em = factory.createEntityManager();
       Query query = em.createQuery("select t from Buyer t where t.username = :username");
       query.setParameter("username", "susen");
       List<Buyer> buyers = query.getResultList();//有多条时用
       for(Buyer b : buyers){
           System.out.println(b.getUsername());
       }
       em.close();
       factory.close();
    }
    @Test
    public void query3() {//删除查询
       EntityManagerFactory factory = Persistence.createEntityManagerFactory("itcast");
       EntityManager em = factory.createEntityManager();
       em.getTransaction().begin();
       em.createQuery("delete from Buyer t where t.username = ?1")
           .setParameter(1, "susen")
           .executeUpdate();
       em.getTransaction().commit();
       em.close();
       factory.close();
    }
   
    @Test
    public void query4() {//更新查询
       EntityManagerFactory factory = Persistence.createEntityManagerFactory("itcast");
       EntityManager em = factory.createEntityManager();
       em.getTransaction().begin();
       em.createQuery("update Buyer t set t.password = ?1 where t.username=?2")
           .setParameter(1, "111111")
           .setParameter(2, "susen")
           .executeUpdate();
       em.getTransaction().commit();
       em.close();
    }
分享到:
评论

相关推荐

    EJB3.0查询语句JPQL用法

    Java企业版(Java EE)中的EJB3.0引入了一种新的查询语言,即JPQL(Java Persistence Query Language)。JPQL是EJB2中EJB QL的扩展,旨在简化Java应用程序对持久化实体的访问和操作。本文将深入探讨JPQL的基本概念、...

    09_传智播客JPA详解_使用JPQL语句进行查询

    **JPQL(Java Persistence Query Language)**是JPA中的查询语言,类似于SQL,但它是面向对象的,用来查询和操作持久化实体。与SQL不同的是,JPQL主要处理对象,而不是数据库表。在本课程"09_传智播客JPA详解_使用...

    JPA加载_更新_删除对象及使用JPQL语句进行查询

    本篇文章将深入探讨JPA中的对象加载、更新、删除操作以及如何使用JPQL(Java Persistence Query Language)进行查询,这些都是Java开发者在处理持久化层时不可或缺的知识点。 首先,我们来看JPA的对象加载。JPA提供...

    09_JPA详解_使用JPQL语句进行查询.zip

    **JPQL(Java Persistence Query Language)**是JPA的一部分,它是面向对象的查询语言,类似于SQL,但专门用于处理JPA实体。JPQL允许开发者用面向对象的方式来构建查询,而不是直接写SQL,这使得代码更易于理解和...

    jpql查询[定义].pdf

    JPQL(Java Persistence Query Language)是Java持久化API(JPA)的一部分,它提供了一种面向对象的方式来查询和操作数据库,类似于SQL但更加抽象和通用。JPQL的主要目的是简化数据库操作,使其与对象模型更紧密地...

    JPA 动态查询 Criteria JPQL 语法详解

    JPQL(Java Persistence Query Language)是一种强大的查询语言,它在 JPA 1.0 中被引入。但是,基于字符串并使用有限语法的 JPQL 存在一些限制。JPQL 查询字符串的语法有误时,Java 编译器不能发现这种错误,只有在...

    JPA之使用JPQL语句进行增删改查

    JPA(Java Persistence API)是一种Java持久化API,提供了使用JPQL(Java Persistence Query Language)语句来进行增删改查操作的功能。在本文中,我们将介绍JPA之使用JPQL语句进行增删改查的基本概念和实践指南。 ...

    jpa查询详解

    JPQL(Java Persistence Query Language)是 JPA 中的一种查询语言,用于书写面向对象的查询语句。JPQL 查询可以用于检索、更新和删除数据。例如,在上面的示例代码中,我们使用了 JPQL 查询来检索 Person 实体: `...

    JPA JPQL常用

    JPQL(Java Persistence Query Language)是JPA的一部分,它是一种面向对象的查询语言,类似于SQL,但专为ORM(Object-Relational Mapping)设计。JPQL允许开发者以对象的方式查询数据库,处理对象关系映射的复杂性...

    EJB的JPQL语法

    在EJB中,**JPQL(Java Persistence Query Language)**是用于查询持久化对象的面向对象的查询语言,类似于SQL但专为ORM(Object-Relational Mapping)框架设计,如JPA(Java Persistence API)。本文将深入探讨EJB...

    EJB_JPQL语言详解

    **JPQL(Java Persistence Query Language)** 是EJB 3.0引入的一种查询语言,专门用于在对象/关系映射(ORM)框架如JPA(Java Persistence API)中进行数据查询。JPQL与SQL类似,但它是面向对象的,允许开发者以类...

    基于JPQL实现纯SQL语句方法详解

    JPQL全称Java Persistence Query Language。 基于首次在EJB2.0中引入的EJB查询语言(EJB QL),Java持久化查询语言(JPQL)是一种可移植的查询语言,旨在以面向对象表达式语言的表达式,将SQL语法和简单查询语义绑定在...

    jpa 别名转实体

    在JPA中,我们经常需要处理SQL查询结果,这些结果可能包含别名,例如在HQL(Hibernate Query Language)或JPQL(Java Persistence Query Language)查询中定义的别名。别名的作用是为了使查询语句更加简洁易读,并且...

    JPA的JPQL语法总结

    Java Persistence Query Language(JPQL)是Java Persistence API(JPA)中用于执行查询的一种语言。它与SQL非常相似,但更加面向对象,允许开发者使用实体类而不是表来编写查询语句。JPQL支持多种查询类型,包括...

    李勇JPA快速入门05_jpa中的查询

    Java Persistence Query Language(JPQL)是JPA提供的面向对象的查询语言,类似于SQL但更专注于对象模型。通过JPQL,开发者可以对实体进行检索、更新和删除操作。例如,查询所有用户可以写成:"SELECT u FROM User ...

    三种查询方式跟踪Hibernate源码

    最后,JPA的JPQL(Java Persistence Query Language)查询与HQL类似,但它是JPA规范的一部分。在Hibernate中,JPQL查询的处理与HQL大体相同,主要涉及`javax.persistence.Query`接口及其实现。跟踪源码时,重点关注`...

    Hibernate生产SQL语句

    Hibernate的核心在于它的Query API,它提供了Criteria、HQL(Hibernate Query Language)和JPQL(Java Persistence Query Language)等方式来构建SQL语句。Hibernate会根据这些查询语句动态生成对应的SQL,并执行在...

    JPA使用手册+API+JAR

    JPQL(Java Persistence Query Language)是JPA提供的面向对象的查询语言,类似于SQL,但更接近于Java的语法,用于检索和操作实体。 在“Java持久性API(JPA).doc”文档中,可能会详细解释JPA的基本概念、配置、...

    java实现两个表的级联查询

    在Hibernate中,你可以定义实体类(对应数据库表),并通过HQL(Hibernate Query Language)或JPQL(Java Persistence Query Language)进行查询。假设我们有`Student`和`Class`两个实体类,你可以这样写级联查询: ...

    hibernate 三种 查询 方式 load与get的区别

    JPA(Java Persistence API)引入了JPQL(Java Persistence Query Language),Hibernate也提供了对JPQL的实现,但同时引入了更强大的Query API,支持参数绑定和函数调用等。以下是一个使用Query API的例子: ```...

Global site tag (gtag.js) - Google Analytics