JPQL 全称 Java Persistence Query Language
基于首次在 EJB2.0 中引入的 EJB 查询语言(EJB QL),Java 持久化查询语言(JPQL)是一种可移植的查询语言,旨在以面向对象表达式语言的表达式,将 SQL 语法和简单查询语义绑定在一起·使用这种语言编写的查询是可移植的,可以被编译成所有主流数据库服务器上的 SQL。
其特征与原生 SQL 语句类似,并且完全面向对象,通过类名和属性访问,而不是表名和表的属性。
1.
//查询所有客户
@Test
**public** **void** findAll() {
EntityManager em = **null**;
EntityTransaction tx = **null**;
**try** {
//获取实体管理对象
em = JPAUtil.getEntityManager();
//获取事务对象
tx = em.getTransaction();
tx.begin();
// 创建query对象
String jpql = "from Customer";
Query query = em.createQuery(jpql);
// 查询并得到返回结果
List list = query.getResultList(); // 得到集合返回类型
**for** (Object object : list) {
System.out.println(object);
}
tx.commit();
} **catch** (Exception e) {
// 回滚事务
tx.rollback();
e.printStackTrace();
} **finally** {
// 释放资源
em.close();
}
}
2.分页查询客户
@Test
**public** **void** findPaged () {
EntityManager em = **null**;
EntityTransaction tx = **null**;
**try** {
//获取实体管理对象
em = JPAUtil.getEntityManager();
//获取事务对象
tx = em.getTransaction();
tx.begin();
//创建query对象
String jpql = "from Customer";
Query query = em.createQuery(jpql);
//起始索引
query.setFirstResult(0);
//每页显示条数
query.setMaxResults(2);
//查询并得到返回结果
List list = query.getResultList(); //得到集合返回类型
for (Object object : list) {
System.out.println(object);
}
tx.commit();
} **catch** (Exception e) {
// 回滚事务
tx.rollback();
e.printStackTrace();
} **finally** {
// 释放资源
em.close();
}
}
3.条件查询
//条件查询
@Test
**public** **void** findCondition () {
EntityManager em = **null**;
EntityTransaction tx = **null**;
**try** {
//获取实体管理对象
em = JPAUtil.getEntityManager();
//获取事务对象
tx = em.getTransaction();
tx.begin();
//创建query对象
String jpql = "from Customer where custName like ? ";
Query query = em.createQuery(jpql);
//对占位符赋值,从1开始
query.setParameter(1, "huanyuan%");
//查询并得到返回结果
Object object = query.getSingleResult(); //得到唯一的结果集对象
System.out.println(object);
tx.commit();
} **catch** (Exception e) {
// 回滚事务
tx.rollback();
e.printStackTrace();
} **finally** {
// 释放资源
em.close();
}
}
4.
//根据客户id倒序查询所有客户
//查询所有客户
@Test
**public** **void** testOrder() {
EntityManager em = **null**;
EntityTransaction tx = **null**;
**try** {
//获取实体管理对象
em = JPAUtil.getEntityManager();
//获取事务对象
tx = em.getTransaction();
tx.begin();
// 创建query对象
String jpql = "from Customer order by custId desc";
Query query = em.createQuery(jpql);
// 查询并得到返回结果
List list = query.getResultList(); // 得到集合返回类型
**for** (Object object : list) {
System.***out***.println(object);
}
tx.commit();
} **catch** (Exception e) {
// 回滚事务
tx.rollback();
e.printStackTrace();
} **finally** {
// 释放资源
em.close();
}
}
5. 统计查询
//统计查询
@Test
**public** **void** findCount() {
EntityManager em = **null**;
EntityTransaction tx = **null**;
**try** {
//获取实体管理对象
em = JPAUtil.getEntityManager();
//获取事务对象
tx = em.getTransaction();
tx.begin();
// 查询全部客户
// 1.创建query对象
String jpql = "select count(custId) from Customer";
Query query = em.createQuery(jpql);
// 2.查询并得到返回结果
Object count = query.getSingleResult(); // 得到集合返回类型
System.***out***.println(count);
tx.commit();
} **catch** (Exception e) {
// 回滚事务
tx.rollback();
e.printStackTrace();
} **finally** {
// 释放资源
em.close();
}
}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于