java空指针异常,帮帮忙

我编写了一个向数据库插入数据的一个测试类,里面有两个方法test1和test2。当我运行test1时向MySQL中插入一条数据,然后我再运行test2就报空指针异常了!看源码。

//此方法向数据库插入一条数据
@Test
public void testTeacherSave() {
Teacher t = new Teacher();
t.setName("t1");
t.setTitle("夏天");
t.setBirthDate(new Date());

    Session session = sessionFactory.getCurrentSession();
    session.beginTransaction();
    session.save(t);
    session.getTransaction().commit();
}

//此方法用于更新数据库的数据
  @Test
public void testUpdate1() {

    Session session = sessionFactory.getCurrentSession();
    session.beginTransaction();
    Teacher t = (Teacher) session.get(Teacher.class, 1);

    session.getTransaction().commit();
    t.setName("zhangsan");      //此处报空指针

    Session session2 = sessionFactory.getCurrentSession();
    session.beginTransaction();
    session2.update(t);

    session.getTransaction().commit();
}

Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
Teacher t = (Teacher) session.get(Teacher.class, 1);
t.setName("zhangsan");

session2.update(t);
session.getTransaction().commit();
这样就可以了

Teacher t = (Teacher) session.get(Teacher.class, 1);说明t为null,也就是说session.get无法通过Teacher.class获取一个实例化对象

采用getCurrentSession()创建的session在commit或rollback时会自动关闭

空指针异常

新建对象

 Session session = sessionFactory.getCurrentSession();
    session.beginTransaction();
**      Teacher t = new Teacher();  //先实例化对象,应该就不为空了**
    t = (Teacher) session.get(Teacher.class, 1);

    session.getTransaction().commit();
    t.setName("zhangsan");      //此处报空指针,是因为,t  是空对象