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 ; }
Hibernate操作入门
猜你喜欢
转载自itil-rong.iteye.com/blog/1020582
今日推荐
周排行