Hibernate中的Session提供了多种更新数据的方法,这里介绍一部分
一、实现增删改
测试类
public static void saveUpdateDelte(){
//1使用 HibernateSessionFactory 工具类 获取session
Session session = HibernateSessionFactory.getSession();
//2.获得id为2的Teacher -->持久化对象
//Teacher t = (Teacher)session.get(Teacher.class, 2);
//3.增删改需要事务
//开启事务
Transaction tr = session.beginTransaction();
//4.添加对象-->添加一个对象到数据库不需要一个持久化对象
//添加teacher
//Teacher t = new Teacher();
//t.setName("bbb");
//session.save(t);
//4.删除对象-->从数据库删除一个对象需要一个持久化对象
//session.delete(tr);
//4.修改对象-->修改一个对象到数据库需要一个持久化对象或者游离态对象
//tr.setName("aaa");
//session.update(tr);
//5.提交事务
tr.commit();
//6.关闭session
session.close();
}
二、构建Query对象,执行HQL语句—>HQL一种面对对象的查询语言
1、按参数位置绑定参数
在HQL语句中用”?”占位符来定义参数的位置,
<!--创建query对象 预编译hql查询语句-->
//查询的是Teacher 对象的id和name属性
Query query = session.createQuery("from Teacher where id=? and name=? ");
//为HQL添加参数
query.setInteger(0, 2);
query.setString(1, "张三");
//获取结果-->query.uniqueResult()方法返回一个唯一结果
Teacher teacher = (Teacher)query.uniqueResult();
注意: 第一个参数位置下标为0
2、按参数名称绑定参数
定义命名参数, 命名参数以” : “开头
//预编译 hql 查询语句
String hql="from Teacher where id=:id and name =:name ";
//创建 query 对象-->使用变量注入HQL语句
Query query = session.createQuery(hql);
//为HQL添加参数
query.setInteger("id", 2);
query.setString("name", "张三");
//获取结果-->query.uniqueResult()方法返回一个唯一结果
Teacher teacher = (Teacher)query.uniqueResult();
3、使用setParameter()方法绑定任意类型参数