Session是hibernate的基础。Session作为贯穿Hibernate的持久化管理核心,提供了很多持久化方法,如 save、update、delete等。通过这些方法,我们即可完成对象的增删改查。
Hibernate Session的设计是非线程安全(一个实例同时只可由一个线程使用)
Session实例由SessionFactory构建
Configuration config=new Configuratrion().configure();
SessionFactory sessionFactory=config.bulidSessionFactory();
Session session=sessionFactory.openSession();
之后我就可以调用Session所提供的各种方法完成持久层操作:
1.Save
Tuser user=new Tuser();
user.setName("name");
session.save(user);
2.Get
Tuser user=(TUser)session.get(TUser.class,new Integer(1));
3.delete
//假设T_User表中存在id=1的记录
TUser user =(TUser)session.get(TUser.class,new Integer(1));
session.delete(user);
//也可以通过HQL指定删除条件
session.delete("from TUser where id=1");
//通过Query接口进行基于HQL的删除操作
String hql="delete TUser where id=1";
Query query=sesssion.createQuery(hql);
query.executeUpdate();
4.find
//返回数据库中所有名字为name的用户名
String hql="from TUser where name='name'";
List userList=session.find(hql);
Hibernate3中取消了find方法,我们必须通过Query或Criteria接口进行数据查询。
通过Query接口进行数据查询
String hql="from TUser user Where user.name like ?";
Query query=session.createQuery(hql);
query.setParametert(0,"name");
List list=query.list();
Iterator it=list.iterator();
while(it.hasNext()){
TUser user=(TUser)it.next();
System.out.println(user.getName);
}