源代碼一字不改,測試都會報空指針錯誤怎么破
Exception in thread "main" java.lang.NullPointerException
?at com.imooc.test.Test.add(Test.java:33)
?at com.imooc.test.Test.main(Test.java:19)
package com.imooc.test;
import java.util.Set;
import org.hibernate.Session;
import org.hibernate.Transaction;
import com.imooc.entity.Grade;
import com.imooc.entity.Student;
import com.imooc.util.HibernateUtil;
/*
?* 單向一對多關系關系(班級--->學生)
?* 建立關聯關系后,可以方便的從一個對象導航到另一個對象
?* 注意關聯的方向
?*/
public class Test {
?public static void main(String[] args) {
??add();
??//findStudentsByGrade();
??//update();
??//delete();
??
?}
?
?//將學生添加到班級
?public static void add(){
??Grade g=new Grade("Java一班", "Java軟件開發一班");
??Student stu1=new Student("張三", "男");
??Student stu2=new Student("穆女神", "女");
??
??//如果希望在學生表中添加對應的班級編號,需要在班級中添加學生,建立關聯關系
??g.getStudents().add(stu1);
??g.getStudents().add(stu2);
??
??Session session=HibernateUtil.getSession();
??Transaction tx=session.beginTransaction();
??session.save(g);
??session.save(stu1);
??session.save(stu2);
??tx.commit();
??HibernateUtil.closeSession(session);
?}
?
?//查詢班級中包含的學生
?public static void findStudentsByGrade(){
??Session session=HibernateUtil.getSession();
??Grade grade=(Grade) session.get(Grade.class, 1);
??System.out.println(grade.getGname()+","+grade.getGdesc());
??
??/*Set<Student> students=grade.getStudents();
??for(Student stu:students){
???System.out.println(stu.getSname()+","+stu.getSex());
??}*/
?}
?//修改學生信息
?public static void update(){
??Grade g=new Grade("Java二班", "Java軟件開發二班");
??
??Session session=HibernateUtil.getSession();
??Transaction tx=session.beginTransaction();
??Student stu=(Student) session.get(Student.class, 1);
??//g.getStudents().add(stu);
??session.save(g);
??tx.commit();
??HibernateUtil.closeSession(session);
?}
?//刪除學生信息
?public static void delete(){
??Session session=HibernateUtil.getSession();
??Transaction tx=session.beginTransaction();
??Student stu=(Student) session.get(Student.class, 2);
??session.delete(stu);
??tx.commit();
??HibernateUtil.closeSession(session);
?}
}
2018-10-11
數據庫表做外鍵關聯了嗎?映射文件配置確認沒問題?源代碼沒有問題