首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

十 映射- 多对多(老师与学生)

2012-11-10 
10 映射-- 多对多(老师与学生)学生类:???保存操作,? 查询就不说了:package daoimport java.util.HashSet

10 映射-- 多对多(老师与学生)

十 映射- 多对多(老师与学生)

学生类:

?

?

?

保存操作,? 查询就不说了:

package dao;import java.util.HashSet;import java.util.Set;import org.hibernate.Session;import org.hibernate.Transaction;import dao.po.Student;import dao.po.Teacher;public class Many2Many{/** * @param args */public static void main(final String[] args){add();}/** * 添加几个老师与学生 */public static void add(){final Teacher t1 = new Teacher();t1.setName("语文老师");final Teacher t2 = new Teacher();t2.setName("数学老师");final Student s1 = new Student();s1.setName("学生小明");final Student s2 = new Student();s2.setName("学生小红");//final Set<Teacher> set_t = new HashSet<Teacher>();//set_t.add(t1);//set_t.add(t2);final Set<Student> set_s = new HashSet<Student>();set_s.add(s1);set_s.add(s2);//给老师set 学生t1.setStudents(set_s); //建立关联,只在一方面建立关联就行了, 不可给学生set()了老师,再老师set()了学生t2.setStudents(set_s); //建立关联,只在一方面建立关联就行了, 不可给学生建了关联,再老师建关联//给学生set 老师//不可以再做Session session = null;try{session = HibernateUtil.getSeesion();final Transaction tx = session.beginTransaction();session.save(t1);session.save(t2);session.save(s1);session.save(s2);tx.commit();}finally{if (session != null){session.close();}}}}// 中间表teacher_student 表结构如下 ://| teacher_student | CREATE TABLE `teacher_student` (//  `teacher_id` int(11) NOT NULL,//  `student_id` int(11) NOT NULL,//  PRIMARY KEY  (`student_id`,`teacher_id`),//  KEY `FK2E2EF2DE4BF3A147` (`teacher_id`),//  KEY `FK2E2EF2DE3B5856A7` (`student_id`),//  CONSTRAINT `FK2E2EF2DE3B5856A7` FOREIGN KEY (`student_id`) REFERENCES `student//` (`id`),//  CONSTRAINT `FK2E2EF2DE4BF3A147` FOREIGN KEY (`teacher_id`) REFERENCES `teacher//` (`id`)//) ENGINE=InnoDB DEFAULT CHARSET=utf8 |

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

1 楼 zhangcheng 2009-03-09   你考虑过更新么?我做的时候,更新无法更新中间表

热点排行