📄 businessservice.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 + -