zoukankan      html  css  js  c++  java
  • JPA查询语言JPQL

          JPQL是一种与数据库无关的,基于实体(entity-based)的查询语言

    使用SQL,你可以直接查询数据库中表的字段;使用JPQL,你可以查找实体的属性。

          一个JPQL语句的各个组成部分都是针对实体或者实体的属性进行的操作

    根本不会用到一个实体所映射的数据库表和字段。下面是你可以创建紧最基本的JPQL语句:

    SELECT u FROM User

        即为  查询从数据库返回所有的User实例

    使用JPQL语言的CRUD操作

    /**
    *
    JPQL测试
    查询语句测试
    *
    @author archie2010
    *
    * since 下午10:21:37
    */
    public class JQLTest {

    /**
    * 获取单个的对象
    */
    public static void findUserByJql(){
    EntityManagerFactory factory
    = Persistence.createEntityManagerFactory("jpaTest");
    EntityManager em
    = factory.createEntityManager();

    Query query
    = (Query)em.createQuery("select u from User u where u.id = ?1");
    query.setParameter(
    1,2);//第一个参数及其值

    User user
    = (User)query.getSingleResult();
    System.out.println(user.getUserName());

    em.close();
    factory.close();
    }
    /**
    * 查询所有
    */
    @SuppressWarnings(
    "unchecked")
    public static void findAll(){
    EntityManagerFactory factory
    = Persistence.createEntityManagerFactory("jpaTest");
    EntityManager em
    = factory.createEntityManager();

    Query query
    = (Query)em.createQuery("select u from User u");

    List
    <User> list = query.getResultList();
    System.out.println(
    "查询所有---------------");
    for(User u:list){
    System.out.println(u.getUserName());
    }
    }
    /**
    * 更新
    */
    public static void updateByJql(){
    EntityManagerFactory factory
    = Persistence.createEntityManagerFactory("jpaTest");
    EntityManager em
    = factory.createEntityManager();

    em.getTransaction().begin();
    Query query
    = (Query)em.createQuery("update User u set u.userName = ?1 where u.id = ?2");
    query.setParameter(
    1,"jiejie");
    query.setParameter(
    2,2);

    query.executeUpdate();
    em.getTransaction().commit();
    em.close();
    factory.close();
    }
    /**
    * 删除
    */
    public static void deleteByJql(){
    EntityManagerFactory factory
    = Persistence.createEntityManagerFactory("jpaTest");
    EntityManager em
    = factory.createEntityManager();

    em.getTransaction().begin();
    Query query
    = em.createQuery("delete from User u where u.id = ?1");
    query.setParameter(
    1, 1);
    query.executeUpdate();
    em.getTransaction().commit();

    em.close();
    factory.close();
    }
    /**
    * JPQL测试
    *
    @param args
    */
    public static void main(String[] args) {
    findUserByJql();
    findAll();
    updateByJql();
    deleteByJql();
    }
    }
    by archie
  • 相关阅读:
    javascript得知
    一旦配置oracle em经验
    windows 下一个mysql password忘记改变
    彩色图像--图像切 色彩空间切割
    Delphi 6 Web Services初步评估之三(转)
    Delphi 用Web App Debugger简单调试ISAPI 转
    Delphi socket() 函数的应用
    用Delphi实现WinSocket高级应用
    delphi编写winsocket的流程
    Delphi使用NativeXml访问XML文件
  • 原文地址:https://www.cnblogs.com/archie2010/p/2032203.html
Copyright © 2011-2022 走看看