JPQL查询语句(Java Presistence Query Language)
来源:互联网 发布:网络渗透技术培训 编辑:程序博客网 时间:2024/05/22 13:01
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();
- }
- JPQL查询语句(Java Presistence Query Language
- JPQL查询语句(Java Presistence Query Language)
- JPQL查询语句(Java Presistence Query Language)
- JPQL查询语句(Java Presistence Query Language)(转)
- JPQL全称Java Persistence Query Language
- jpql 语句的查询
- JPQL常见查询语句
- Hibernate Query Language查询
- Hibernate Query Language查询
- Hibernate Query Language查询
- Mysql数据库查询语句DQL(Data Query Language)—— 基本查询
- EJB3.0查询语句JPQL用法
- EJB3.0查询语句JPQL用法
- JPA java presistence API
- Mysql数据库查询语句DQL(Data Query Language)—— 连接查询、子查询、联合查询
- 数据查询语言(Database Query Language,DQL):SELECT语句之一
- 数据查询语言(Database Query Language,DQL):SELECT语句之二
- JPQL语句
- JPQL
- android-需求(四):对系统是否有特定的模块
- 黑马程序员 交通灯管理系统
- 第五讲:COM组件注册与智能指针
- POJ1503《Integer Inquiry》方法:模拟 高精度
- JPQL查询语句(Java Presistence Query Language)
- Embarcadero.ERStudio安装
- 嵌套for循环
- 黑马程序员_BeanUtils包的使用,主要是BeanUtils和PropertyUtils的区别
- ubuntu下adb不识别小米2
- mybatis下的分页,支持所有的数据库
- 黑马程序员_交通灯管理系统
- 黑马程序员 Java基础<二>---> 继承、内部类与多态,包
- 黑马程序员_银行业务调度系统