文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>JPA查询语言JPQL

JPA查询语言JPQL

时间:2011-04-28  来源:archie2010

      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();
}
}
相关阅读 更多 +
排行榜 更多 +
地狱摩托游戏最新版下载

地狱摩托游戏最新版下载

赛车竞速 下载
小猫快来钓鱼游戏下载

小猫快来钓鱼游戏下载

休闲益智 下载
殴打氪金大佬昊天手游下载

殴打氪金大佬昊天手游下载

休闲益智 下载