使用Hibernate3修改数据库

Hibernate3操作数据库有三种方式:1、使用Hibernate3的操作数据库,2、使用SQL操作数据库,3、使用HQL操作数据库。以下演示使用三种方式进行数据库数据修改

1、使用Hibernate修改数据

public void updateHibernate() {

   // 1、获取Session,org.hibernate.Session   

   Session session = HibernateSessionFactory.getSession();     

   // 2、获取事务, org.hibernate.Transaction

    Transaction transaction =session.getTransaction();     

    // 3、开启事务   

    transaction.begin();

    // 4、查询出需要修改的数据

    Test test = (Test) session.get(Test.class, 1);

    // 5、修改数据

    test.setAge("21");

    // 6、将数据更新到数据库     

    session.update(test);     

    // 7、提交事务   

    transaction.commit();     

    // 8、关闭session     

    session.close(); 

}

2、使用SQL语句修改数据

public void upateSQL(){      

   // 1、获取Session,org.hibernate.Session   

   Session session=HibernateSessionFactory.getSession();       

   // 2、获取事务,org.hibernate.Transaction   

   Transaction transaction=session.getTransaction();   

    // 3、开启事务        

   transaction.begin();

   // 4、声明SQL语句

    String sql="update test set name=?,age=?,sex=? where id=?"; 

    // 5、根据sql创建SQLQuery     

    SQLQuery sqlQuery=session.createSQLQuery(sql).addEntity(Test.class);     

    // 6、设置参数的值 ,参数索引从0开始     

    sqlQuery.setString(0, "小明").setString(1, "20").setString(2,"男") .setInteger(3,1);

    // 7、执行修改 ,获取受影响的行数 

    int r= sqlQuery.executeUpdate();  

    // 8、提交事务   

    transaction.commit();    

    // 9、关闭session     

    session.close(); 

 }

3、使用HQL修改数据。hql是Hibernate语言查询,一般情况下HQL通过创建query对象(有参),当执行list,iterator时发sql语句 HQL独立于任何一个数据库,hibernate根据数据库类型把HQL生成对应数据库相应的 sql语句。HQL语句中关键字不区分大小写,但是实体类和对象属性要区分大小写

public void updateHQL(){

   // 1、获取Session,org.hibernate.Session   

   Sessionsession=HibernateSessionFactory.getSession();       

   // 2、获取事务, org.hibernate.Transaction   

   Transaction transaction=session.getTransaction();   

    // 3、开启事务        

   transaction.begin();

   // 4、声明SQL语句

    String hql="update test t sett.name=?,t.age=?,t.sex=? where t.id=?"; 

    // 5、更加hql建query

    Query query=session.createQuery(hql);

   // 6、设置参数的值,参数索引从0开始             

    query.setString(0, "小明").setString(1, "20").setString(2,"男") .setInteger(3,1);

    // 7、执行修改 ,获取受影响的行数 

    int r= query.executeUpdate();  

    // 8、提交事务   

    transaction.commit();    

    // 9、关闭session     

    session.close();

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值