這次我們建立兩個表cat和animal
crete table cat(id int(10),idcat int(10) auto_increment primary key ,name varchar(40),sex varchar(20) foreign key(id) references animal(id));
create table animal(id int(10),animalname varchar(40));
animal的主鍵id是cat的外鍵id
加載文件方法同上篇
package dao;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import javax.management.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import entity.Animal;
import entity.Cat;
import entity.Grade;
import entity.Student;
public class Testanimal {
private static SessionFactory sessionFactory=null;
private static Session session=null;
Transaction transaction=null;
static {
try {
sessionFactory=new Configuration().configure().buildSessionFactory();
} catch (Exception e) {
// TODO: handle exception
}
}
public static void saveGradeAndStudent(){
Animal animal =new Animal();
animal.setAnimalname("laohu");
animal.setId(2);
Cat cat=new Cat();
//當grade.hbm.xml中inverse=true表明有學生維護班級的關聯關係
//grade-student-relation這張表,需要學生向該表插入數據
cat.setIdcat(1);
cat.setName("xiaomao");
cat.setSex("mu");
cat.setAnimal(animal);
//當grade.hbm.xml中inverse=false表明有班級維護學生關聯關係,區別是多執行一個updata
//grade.getStudents().add(student);
session=sessionFactory.openSession();
session.save(animal);
session.save(cat);
session.beginTransaction().commit();
session.close();
}
public static void updateAllGrade1AndStudent1(Integer id){
session=sessionFactory.openSession();
Animal animal=(Animal) session.get(Animal.class, id);
try {
session.beginTransaction();
//grade.setGradename("dai");
//grade1.setId(13);
Set catset=animal.getCats();
Iterator iterStu=catset.iterator();
while(iterStu.hasNext()){
Cat cat=(Cat) iterStu.next();
cat.setName(cat.getName()+8);
System.out.println(cat);
}
session.getTransaction().commit();
}
catch (Exception e) {
// TODO: handle exception
session.close();
}
session.close();
}
public static void main(String[] args) {
//saveGradeAndStudent();
updateAllGrade1AndStudent1(3);
}
}