Hibernate的初体验

来源:互联网 发布:阿里影业马云 编辑:程序博客网 时间:2024/06/03 01:40

              在JavaProject中 , 初次写了三个方法 增删改查 完成对数据库的操作.

 

        第一个方法, 增加的方法,  

public void addTest() {
  SessionFactory sf = null;
  Session session = null;
  Transaction tx = null;
  try {
   Configuration cf = new Configuration().configure();
   sf = cf.buildSessionFactory();
   session = sf.openSession();
   tx = session.beginTransaction();
   Person person = new Person();
   person.setUserName("joyhouse");
   person.setPassword("pig");
   session.save(person);
   tx.commit();
  } catch (HibernateException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
   tx.rollback();
  } finally {
   session.close();
  }
 }

 

其中   session = sf.openSession();
   tx = session.beginTransaction();
   Person person = new Person();
   person.setUserName("joyhouse");
   person.setPassword("pig");
   session.save(person);
   tx.commit();
 比较关键 , save() 是session 类中已经写好的,  直接将需要插入的数据,封装成对象,放进去, save() 一下就Ok了, 再带一个 tx.commit() .

 

删除方法:

public void testDelete(){
  Session session = sf.openSession();
  Transaction tx = null ;
  try {
   tx = session.beginTransaction();
   Person person = this.get(2);
   session.delete(person);
   tx.commit();
  } catch (HibernateException e) {
   // TODO Auto-generated catch block
   if(tx != null){
    tx.rollback();
   }
   e.printStackTrace();
  }finally{
   session.close();
  }
 }

 

删除方法 首先利用传入的条件, 一个主键ID 调用方法中 已经带有的get() , 查询出来相应的对象 ,之后利用delete() 方法 将这个对象 person对象删除.

 

更新方法:

public void testUpdate(){
  Session session = sf.openSession();
  Transaction tx = null ;
  try {
   tx = session.beginTransaction();
   Person person = this.get(1);
   person.setUserName("new zero");
   session.update(person);
   tx.commit();
  } catch (HibernateException e) {
   // TODO Auto-generated catch block
   if(tx != null){
    tx.rollback();
   }
   e.printStackTrace();
  }finally{
   session.close();
  }
 }

 

更新方法和上面的雷同, 也是先根据ID 将数据对象 取出来, person.setUserName("new zero"); 将需要修改的数据 person.setUserName("new zero"); 这样处理, 之后 session.update(person)  OK了.

 

查询方法:

 

public Person get(Integer id){
  Session session = sf.openSession();
  Person person = (Person)session.get(Person.class, id);
  session.close();
  return person;
 }
 
 public void testLoad(){
  Person person = this.get(2);
  System.out.println(person.getUserName()+" , "+ person.getPassword());
  
 }

 

这个代码量很少 一看Ok , 但是四个方法中 唯一有点区别的机试查询方法是不需要使用Transaction 类, 它是不需要事务的 .

原创粉丝点击