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

📄 businessservice.java

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

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
//一对多双向关联

public class BusinessService {
	public static SessionFactory sessionFactory;
	static {
		try {
			Configuration cfg = new Configuration();
			cfg.addClass(Student.class);
			cfg.addClass(Course.class);
			sessionFactory = cfg.buildSessionFactory();
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	}
	// 单独保存课程
	public void saveCourse (String courseName)
	{
		Session session = sessionFactory.openSession();
		Transaction ts = null ;
		try {
			ts = session.beginTransaction();
			Course course = new Course(courseName);
			session.save(course);
			ts.commit();
			
		} catch (Exception e) {
			// TODO: handle exception
			if(ts!=null)
				ts.rollback();
			e.printStackTrace();
		}
		finally
		{
			session.close();
		}
	}

	// 单独保存学生
	public void saveStudent(String studentNumber)
	{
		Session session = sessionFactory.openSession();
		Transaction ts = null ;
		try {
			ts = session.beginTransaction();
			Student student = new Student();
			student.setStudentNumber(studentNumber);
			session.save(student);
			ts.commit();
			
		} catch (Exception e) {
			// TODO: handle exception
			if(ts!=null)
				ts.rollback();
			e.printStackTrace();
		}
		finally
		{
			session.close();
		}
	}
	// 级联保存课程和学生
	public void saveCourseAndStudentWithCascade(String studentNumber,String courseName) {
		Session session = sessionFactory.openSession();
		Transaction ts = null;
		try {
			ts = session.beginTransaction();

			Student student = new Student();
			student.setStudentNumber(studentNumber);

			Course course = new Course(courseName, new HashSet());
			student.setCourse(course);
			course.getStudents().add(student);
			session.save(course);

			ts.commit();

		} catch (Exception e) {
			// TODO: handle exception
			if (ts != null)
				ts.rollback();
			e.printStackTrace();
		} finally {
			session.close();
		}
	}

	public void findCourse(String name) {
		// Ask for a session using the JDBC information we've configured
		Session session = sessionFactory.openSession();
		Transaction ts = null;
		try {
			ts = session.beginTransaction();
			Course course = null ;
// course = (Course)session.load(Course.class, "23");
// course = (Course)session.get(Course.class, "23");
			Query query = session
					.createQuery("from Course as c left join fetch c.students s where c.name=:name");
			query.setString("name", name);
			List list = query.list();

			course = (Course)list.get(0);
			Set set = course.getStudents();
			for (Iterator iterator = set.iterator(); iterator.hasNext();) 
			{
				Student student = (Student) iterator.next();
				System.out.println("student.id:"+student.getId());
				
			}
			
// System.out.print(course.getName());
// System.out.println(" " + course.getId());
// System.out.println();


			ts.commit();
		

		} catch (Exception e) 
		{
			if (ts != null) {
				// Something went wrong; discard all partial changes
				ts.rollback();
			}
			e.printStackTrace();
		} finally {
			// No matter what, close the session
			session.close();
		}
	}

	public void findStudent(String studentNumber) {
		Session session = sessionFactory.openSession();
		Transaction ts = null;
		try {
			ts = session.beginTransaction();
			Query query = session
					.createQuery("from Student s  where s.studentNumber= :number");
			query.setString("number", studentNumber);
			List list = query.list();
			
			for (Iterator iterator = list.iterator(); iterator.hasNext();) {
				Student student = (Student) iterator.next();
				System.out.print(student.getStudentNumber()+": ID为");
				System.out.print(student.getId());
// System.out.print("所选科目:"+student.getCourse().getName());
// System.out.println(" 科目ID为:"+student.getCourse().getId());
			}

			ts.commit();
		} catch (Exception e) {
			if (ts != null)
				ts.rollback();
			e.printStackTrace();
			// TODO: handle exception
		} finally {
			session.close();
		}
	}

	public void test() {
// saveCourse("地理");
// saveStudent("高洪宇");
// saveCourseAndStudentWithCascade("高洪宇","语文");
		findCourse("语文");
// findStudent("高洪宇");
// deleteCourse("政治");

	}

	public static void main(String[] args) {
		BusinessService obj = new BusinessService();
		obj.test();
	}

}

⌨️ 快捷键说明

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