Hibernate执行访问步骤及增删改查

2 篇文章 0 订阅
2 篇文章 0 订阅

配置文件是hibernate的灵魂,上篇较为简单地写了下配置文件,以后会修改。现在写我们比较关心的如何使用Hibernate进行增删改查.

1. 创建org.hibernate.Query(接口)

 

Query接口是An object-oriented representation of a Hibernate query. A Query instance is obtained by callingSession.createQuery(String queryString)。Session.createQuery返回的是SQLQuery,它继承Query,代表的是原生SQL语句生成的Query。

2. 设置Query,对查询的执行进行某些方面的设置。

Query Query.setXXX()系列,对SQL语句中的条件进行设置,可以通过条件的位置或名字进行设值。条件的形式应为where id =:idValue。而且setXXX(name,value)中的name应为idValue,没有冒号。

SQLQuery SQLQuery.addEntity()系列,指定查询结果的组装类;SQLQuery.addScalar()系列,指出要查询的字段。

3. 执行

int Query.executeUpdate(): Execute theupdate or delete statement.

List list(): 执行查询,Return the query results as a List. If the query contains multiple results pre row, the results are returned in an instance of Object[].

查询举例

  1. Session session = HibernateHelper.getSessionFactory().openSession();  
  2. Transaction transaction = session.beginTransaction();  
  3. //1.创建、设置条件、指定封装类、执行  
  4. Query query=session.createSQLQuery("select * from customer where id= :idVal")  
  5.     .addEntity(Customer.class);  
  6. query.setInteger("idVal"1);//设置查询条件  
  7. List result = query.list();  
  8. for(Object aRe:result){  
  9.     Customer customer=(Customer) aRe;  
  10.     System.out.println(customer.getName());  
  11. }  
  12. transaction.commit();  
  13. session.close();  
  14. /*2.addScalar的使用。读取部分字段  
  15.  * SQLQuery.addScalar(String)-把一个字段加入到结果中, SQLQuery的list(),list的每个元素代表一行数据。 
  16.  * 若查询结果只有一个字段,元素是一个Object类; 
  17.  * 如查询结果有两个以上字段,元素就是一个Object[],数组大小=字段个数  
  18.  * */  
  19. List result = session.createSQLQuery("select * from customer")  
  20.     .addScalar("name")  
  21.     .addScalar("id")  
  22.     .list();  
  23. for(Object aRe:result){  
  24.     Object[] aRow=(Object[])aRe;  
  25.     System.out.println(aRow[0]+"|"+aRow[1]);  
  26. }  

更新举例

  1. //此处顺带演示了setXXX(int position,value)系列方法的使用  
  2. Query query=session.createSQLQuery("update customer set name = 'testUpdate' where id = ?");  
  3. query.setInteger(01);//参数为(int position,val)  
  4. int i=query.executeUpdate();  

Hibernate执行持久层访问步骤:

1.创建Configuration实例;2.创建SessionFactory实例;3.创建Session实例;4.打开事务;5.持久化访问;6.提交事务;7.若有异常,回滚;8.关闭session


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值