⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 maptestbean.java

📁 一个关于hibernate的实现例子
💻 JAVA
字号:
package com.hellking.study.hibernate;

import net.sf.hibernate.*;
import net.sf.hibernate.cfg.*;
import java.util.*;

/**
 *测试持久对象的映射关系
 */
public class MapTestBean extends HibernateBase
{
	public MapTestBean() throws HibernateException
	{
		super();
	}
	
	/**
	 *在数据库中添加数据
	 */
	 public void addData(String studentId,String classesId,String coursesId)
        throws HibernateException {
        try
        {
          /**
           *以下的代码添加了一个Student,同时为Student指定了
           *Address、Courses和Classses。
           */
          beginTransaction();  
          //创建一个Student对象 。       
          Student student = new Student();
          student.setName("hellking2");
          student.setId(studentId);
          
          //创建一个Address对象。
          Address addr=new Address();
          addr.setCity("beijing");
          addr.setState("bj");
          addr.setStreet("tsinghua");
          addr.setZip("100083");
          addr.setId(student.getId());        
			//设置Student和address的关系。
          student.setAddress(addr);
       
         
         Set set=new HashSet();
         set.add(student);
         //创建一个course对象。
         Course course=new  Course  ();
         course.setId(coursesId);
         course.setName("computer_jsp");
         //设置course和student对象之间的关系。
         course.setStudents(set);
       
         //创建一个classes对象。
         Classes cl=new Classes();
         cl.setId(classesId);
         cl.setName("engine power");
         //设置某个classes对象包含的的students对象。
         cl.setStudents(set);
        //由于是双向的关系,student对象也需要设置一次。
         student.setClasses(cl);        
         
         //保存创建的对象到session中。
         session.save(cl);
         session.save(course);
         session.save(student);
         session.save(addr);
         //提交事务,使更改生效。
         endTransaction(true);
       }
       catch(HibernateException e)
       {
         
           System.out.println("在添加数据时出错!");
           e.printStackTrace();
       	   throw e;
       }

          
    }
    /**
     *获得某个给定studentid的Student的地址信息
     */
    public Address getAddress(String id) throws HibernateException
    {    	
    	    beginTransaction();    	
	    	Student st=(Student)session.load(Student.class,id);    
	    	Address addr=(Address)session.load(Address.class,st.getId());
	    	endTransaction(false);	
			return addr;
	   
    }
    
    /**
     *获得某个给定studentid的Student的所有课程
     */
    public Set getCourses(String id)throws HibernateException
    {
    	beginTransaction();    	
    	Student st=(Student)session.load(Student.class,id);
     	endTransaction(false);	   
    	return st.getCourses();
    }
    
    /**
     *测试获得某个给定studentid的Student所属的Classes
     */
    public Classes getClasses(String id)throws HibernateException
    {
    	
    	beginTransaction();    	
    	Student st=(Student)session.load(Student.class,id); 
    	System.out.println(st.getClasses().getId());  
    	endTransaction(false);	
    	return st.getClasses();
    } 
    
    /**
     *删除和某个学生相关的所有信息
     *(这里只是测试,我们暂且不说这种操作的意义何在)。
     */
    public void delteStudent(String id)throws HibernateException
    {
    	beginTransaction();    	
    	Student st=(Student)session.load(Student.class,id);     	
    	Address addr=(Address)session.load(Address.class,st.getId());
    	//删除address信息。
    	session.delete(addr);
    	//删除classes信息。
    	session.delete(st.getClasses());
    	/**
    	 *逐个删除course。
    	 */
        for(Iterator it=st.getCourses().iterator();it.hasNext();)
        {
        	Course c=(Course)it.next();
        	session.delete(c);
        }
        //最后,删除student对象。
    	session.delete(st);
    	endTransaction(true);	
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -