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

📄 businessservice.java

📁 hibernate的经典练习
💻 JAVA
字号:
package com.ghy.test5;

import org.hibernate.*;
import org.hibernate.cfg.Configuration;
import java.util.*;
import org.hibernate.criterion.*;

public class BusinessService{
  public static SessionFactory sessionFactory;
  static{
     try{
      // Create a configuration based on the properties file we've put
       Configuration config = new Configuration();
       config.addClass(Course.class)
             .addClass(Student.class);
      // Get the session factory we can use for persistence
      sessionFactory = config.buildSessionFactory();
    }catch(Exception e){e.printStackTrace();}
  }

 
  public  void  findCourseByNameCBQ() throws Exception
  {
	  Session session = sessionFactory.openSession();
	    Transaction tx = null;
	    try {
	      tx = session.beginTransaction();

	      System.out.println("===============");
	      Criteria criteria = session.createCriteria(Course.class);
	      System.out.println("===============");
	      Criterion criteraion1 = Expression.eq("name","英语");
	      System.out.println("===============");
	      criteria.add(criteraion1);
	      System.out.println("===============");
	      List list = criteria.list();
	      System.out.println("===============");
	     
	      tx.commit();
	      Iterator ite = list.iterator();
	      while(ite.hasNext())
	      {
	       Course obj =(Course )ite.next();
	      
	      }
	    }catch (Exception e) {
	      if (tx != null) {
	        // Something went wrong; discard all partial changes
	        tx.rollback();
	      }
	      throw e;
	    } finally {
	      // No matter what, close the session
	      session.close();
	    }
  }
  
  public void saveCourseAndStudentWithCascade() throws Exception{
  	  // Ask for a session using the JDBC information we've configured
    Session session = sessionFactory.openSession();
    Transaction tx = null;
    try {
      // Create some data and persist it
      tx = session.beginTransaction();
      System.out.println("===============");
      Course course=new Course("英语",new HashSet());
      System.out.println("===============");
      Student student=new Student();
      System.out.println("===============");
      student.setStudentNumber("ghy001");
      System.out.println("===============");
      student.setCourse(course);
      System.out.println("===============");
      course.getStudents().add(student);
      System.out.println("===============");
   
      session.save(course);
      System.out.println("===============");
      tx.commit();
               
    }catch (Exception e) {
      if (tx != null) {
        // Something went wrong; discard all partial changes
        tx.rollback();
      }
      e.printStackTrace();
    } finally {
      // No matter what, close the session
      session.close();
    }
  }

  public  Iterator findStudentByCourseNameEagle(String courseName)throws Exception
  {
	  Session session = sessionFactory.openSession();
	    Transaction tx = null;
	    try {
	      tx = session.beginTransaction();
	      System.out.println("===============");
	      Query query=session.createQuery("from com.ghy.test5.Course  as c "
                  +"where c.name=:name ");
	      
	      System.out.println("===============");
	      query.setString("name", courseName);
	      System.out.println("===============");
	      List list = query.list();
	      System.out.println("===============");
	      
	      tx.commit();
	      Iterator ite = list.iterator();
	      while(ite.hasNext())
	      {
	       Course obj =(Course)ite.next();
	      
	       Collection col = obj.getStudents();
	       System.out.println(col.getClass());
	       System.out.println();
	       Iterator i = col.iterator();
	       return i;
	
	      }
	    }catch (Exception e) {
	      if (tx != null) {
	        // Something went wrong; discard all partial changes
	        tx.rollback();
	      }
	      throw e;
	    } finally {
	      // No matter what, close the session
	      session.close();
	    }
	    return null;
  }
  
  public  Iterator findStudentByCourseNameFetch (String courseName)throws Exception
  {
	  Session session = sessionFactory.openSession();
	    Transaction tx = null;
	    try {
	      tx = session.beginTransaction();
	      Query query=session.createQuery
	      ("from com.ghy.test5.Course  as c left join fetch c.students "
                  +"where c.name=:name ");
	      query.setString("name", courseName);
	      List list = query.list();;
	      tx.commit();
	      Iterator ite = list.iterator();
	      while(ite.hasNext())
	      {
	       Course obj =(Course )ite.next();
	       Collection col = obj.getStudents();
	       Iterator i = col.iterator();
	       return i;
	
	      }
	    }catch (Exception e) {
	      if (tx != null) {
	        // Something went wrong; discard all partial changes
	        tx.rollback();
	      }
	      throw e;
	    } finally {
	      // No matter what, close the session
	      session.close();
	    }
	    return null;
  }
  public void printStudents(Iterator i)throws Exception
  {
//	  Iterator i = col.iterator();
	  while(i.hasNext())
	  {
		  Student stu =(Student)i.next();
//		 Stack stack= new Stack();
//		 stack.
		
	  }
  }
  
   public void test() throws Exception{
   try{
	 System.out.println("��ʼ��l����=======================");
//     saveCourseAndStudentWithCascade();
//     this.findCourseByNameCBQ();
     printStudents(this.findStudentByCourseNameEagle("英语"));
//     printStudents(this.findStudentByCourseNameFetch("英语"));
  
      
   }catch(Exception e)
   {
	   e.printStackTrace();
   }
  }

  public static void main(String args[]) throws Exception {
    new BusinessService().test();
    sessionFactory.close();
  }
}

⌨️ 快捷键说明

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