Session session=HibernateUntil.getSessionFactory().openSession();
Transaction tx=session.beginTransaction();
//一 使用update函数
/*User1 u=new User1();
u.setName("fei111");
u.setPassword("123456");
u.setId(1);
//使用update函数时,必须指定id,
session.update(u);*/
//二 使用 saveOrUpdate方法
/*String hql="from User1 user1";
//通过aession的createQuery方法创建了Query对象
Query query=session.createQuery(hql);
List users=query.list();//返回结果集
//便利结果集
for (int i=0;i<users.size();i++)
{
User1 u=(User1) users.get(i);
System.out.println(u.toString());
u.setName("Jack");
session.saveOrUpdate(u);
}
*/
//三 delete方法 删除记录{必须设置主键删除}
//如果传入对象不是持久态,需要将对象与session实例相关联,使其转换成持久态
/*User1 u=new User1();
u.setId(2);
session.delete(u);//删除对应的数据
*/
//四 get()方法【通过标识符(主键)得到制定类的持久化对象】
//参数2 的类型必须和属性一致 {比如User1的标识符类型时int,参数2必须时int}
/*User1 u=(User1) session.get(User1.class,2);
System.out.println(u.toString());*/
//五 load方法(采用延迟加载发的方市)
/*User1 user=(User1) session.load(User1.class, 1);
System.out.println(user.toString());*/
// get()方法和load()方法的区别
// 1.擦还找记录不存在时,get()方法会返回空,二load()方法会抛出异常
// 2.get()方法返回实体类,而load()方法返回代理类实例(只有id值,其他值空的)
//六 contains()方法 判断实体对象是否与当前的session对象相关联,判断实体对象是否处在持久态
/*User1 u=new User1();
u.setId(1);
System.out.println(session.contains(u));*/
//七 evict()方法 用来管理session缓存
//当session打开时间过长或者载入数据过多,会占大量内存
//如果u对象实例在session中,则将其移除
/*User1 u=new User1();
u.setId(1);
if(session.contains(u))
{
session.evict(u);
}*/
//八 clear()函数 清空session()
/*session.clear();*/
//九 creaeteQuery()方法 创建Query()查询接口的实例,可以使用HQL语言进行数据库的查询操作
/*Query query=session.createQuery("from user1");//创建Query实例
List<User1> list=query.list();*/
//十 createCriteria,可以设置条案件来执行数据库的查询操作
/*Criteria criteria=session.createCriteria(User1.class);
criteria.setMaxResults(50);//结果条数
List users=criteria.list();*/
//十一 createSQLQuery()方法 用于创建SQLQuery查询接口实例,可以通过标准的SQL语句来查询
/*List<User1> users=session.createSQLQuery("select * from user1").list();
System.out.println(users.get(1));
*/
//十二 createFilter方法
//用于一个持久化集合或者数组的特殊的查询
// 下面代码的作用是查询班级team中成绩高于80分的学生集合
/*Collection StudentScore=session.createFilter(
team.getStudents(),
"where this.score>?" //HQL语句,过滤作用
).setParameter(1,new Integer(80)).list(); //设置HQL语句中的参数
*/
tx.commit();
HibernateUntil.shutdown();//关闭session实例
Hibernate中的session的有关方法
最新推荐文章于 2023-01-03 14:52:28 发布