Hibernate操作入门

Hibernate复习 
Hibernate的核心接口有五个:Session,SessionFacttory,Configuration,Transaction和Query
Session接口负责持久化对象的操作 好比是一个JDBC的连接对象
SessionFactory接口负责初始化hibernate.cfg.xml,它充当数据储存源的代理,好比是一个数据源
Configuration接口负责并启动hibernate,创建SessionFactory对象 在创建过程中会首先找到配置文件
Transaction接口负责事物的相关操作
Query是负责数据库的查询,可以使用hql方言
实例 :过程
1打开连接
// 找到Hibernate配置
Configuration config = new Configuration().configure() ;
// 从配置中取出SessionFactory
SessionFactory factory = config.buildSessionFactory() ;
// 从SessionFactory中取出一个Session  
this.session = factory.openSession() ;
2 执行插入操作
public void insert(Person p)
{
// 开始事务
Transaction tran = this.session.beginTransaction() ;
// 执行语句
this.session.save(p) ;
// 提交事务
tran.commit() ;
// 关闭Session
this.session.close() ;
}
测试类
Person p = new Person() ;
 p.setId("LXH") ;
p.setName("李兴华") ;
p.setPassword("www.mldn.cn") ;
p.setSex("男") ;
p.setEmail("[email protected]") ;
PersonOperate po = new PersonOperate() ;
po.insert(p) ;

3 执行修改操作
public void update(Person p)
{
// 开始事务
Transaction tran = this.session.beginTransaction() ;
// 执行语句
this.session.update(p) ;
// 提交事务
tran.commit() ;
}
测试类  只是修改了它的名字
  Person p = new Person() ;
p.setId("LXH") ;
p.setName("魔术") ;
p.setPassword("www.mldn.cn") ;
p.setSex("男") ;
p.setEmail("[email protected]") ;
PersonOperate po = new PersonOperate() ;
po.insert(p) ;


4 // 按ID查询:推荐使用HQL —— 是Hibernate官方推荐的查询语言
public Person queryById(String id)
{
Person p = null ;
// 使用Hibernate查询语言
String hql = "FROM Person as p WHERE p.id=?" ;
// 通过Query接口查询
Query q = this.session.createQuery(hql) ;
q.setString(0,id) ;
List l = q.list() ;
Iterator iter = l.iterator() ;
if(iter.hasNext())
{
p = (Person)iter.next() ;
}
return p ;
}
测试类
PersonOperate po = new PersonOperate() ;
Persion p=new persion();
P=po.queryById("lxh");
5 删除数据
// Hibernate2、Hibernate 3通用的删除
// 使用此方法删除数据之前,必须先查找到数据对象,性能呢?
public void delete(Person p)
{
Transaction tran = this.session.beginTransaction() ;
// 执行语句
this.session.delete(p) ;
// 提交事务
tran.commit() ;
}
6 在Hibernate 3之中根据HQL中的语句进行了修改,增加了删除指令
public void delete(String id)
{
String hql = "DELETE Person WHERE id=?" ;
Query q = this.session.createQuery(hql) ;
// 把参数设置
q.setString(0,id) ;
// 执行更新语句
q.executeUpdate() ;
// 进行事务处理
this.session.beginTransaction().commit() ;
}
7查询全部数据,写HQL
public List queryAll()
{
List l = null ;
String hql = "FROM Person as p" ;
Query q = this.session.createQuery(hql) ;
l = q.list() ;
return l ;
}

8 模糊查询
public List queryByLike(String cond)
{
List l = null ;
String hql = "FROM Person as p WHERE p.name like ?" ;
Query q = this.session.createQuery(hql) ;
q.setString(0,"%"+cond+"%") ;
l = q.list() ;
return l ;
}

相关推荐