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();
}