- 浏览: 7185373 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (397)
- 架构研究 (44)
- 网络协议-TCP/HTTP (20)
- SPRING (23)
- HIBERNATE 3 (30)
- STRUTS 2 (20)
- Java/J2se (25)
- Servlet/Jsp (9)
- 开发工具IDE (10)
- WEB服务器 (17)
- 前端--Java Script (33)
- 前端--CSS (7)
- OS--Linux (31)
- OS--MAC OS (19)
- MySQL数据库 (19)
- Oracle数据库 (11)
- 项目管理工具 (12)
- 数据报表技术 (4)
- 图像处理技术 (10)
- 其它综合技术 (13)
- 权限管理 (1)
- MyBatis (1)
- 网络安全 (6)
- IO (21)
- PostgreSQL (2)
- Eclipse RCP (1)
- GWT (1)
- 算法 (3)
- Storm (2)
- zookeeper (3)
- 消息 (1)
最新评论
-
bukebuhao:
已解决,打开文件太多。ulimit -n 上次临时生效后再次s ...
TFS(Taobao File System)配置dataServer、分区、挂载数据盘 -
bukebuhao:
ds重启后启动不了。报错信息如下,请大神帮助[2018-08- ...
TFS(Taobao File System)配置dataServer、分区、挂载数据盘 -
墨上清:
感谢,看完有了一个完整的知识网络。
Spring MVC 教程,快速入门,深入分析 -
云卷云舒灬:
谢谢,学到很多
Spring MVC 教程,快速入门,深入分析 -
luozhy:
非常感谢非常感谢
Project Web Access ActiveX控件 安装
学生类:
package dao.po; import java.util.Set; /** * @author zl 学生类 */ public class Student { private int id; private String name; private Set<Teacher> teachers; }
老师类:
package dao.po; import java.util.Set; /** * @author zl 老师类 */ public class Teacher { private int id; private String name; private Set<Student> students; }
两个映射文件 :
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="dao.po"> <class name="Student"> <id name="id"> <generator class="native"/> </id> <property name="name" not-null="true" length="255" column="`name`"/> <!-- name="teachers" 表示:Student类中有一个属性叫teachers (是Set集合)--> <!-- table="teacher_student" 表示:中间表表名叫teacher_student --> <set name="teachers" table="teacher_student"> <!-- column="student_id" 表示:中间表teacher_student的字段--> <!-- Student类的id与中间表teacher_student的字段student_id对应--> <key column="student_id"/> <!-- column="teacher_id" 表示:中间表teacher_student的字段--> <!-- class="Teacher" 表示:中间表teacher_student的字段teacher_id与 Teacher类的id对应--> <many-to-many class="Teacher" column="teacher_id"/> </set> </class> </hibernate-mapping>
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="dao.po"> <class name="Teacher"> <id name="id"> <generator class="native"/> </id> <property name="name" not-null="true" length="255" column="`name`"/> <set name="students" table="teacher_student"> <key column="teacher_id"/> <many-to-many class="Student" column="student_id"/> </set> </class> </hibernate-mapping>
保存操作, 查询就不说了:
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 |
发表评论
-
Hibernate二级缓存 ---- 最佳实践
2010-11-08 10:17 39276作者:赵磊 博客:ht ... -
Hibernate--泛型DAO
2010-06-27 19:49 5040泛型DAO(翻译) http://www.iteye.com ... -
Hibernate--空位
2010-06-27 15:41 1781原文章已合并整理到: http://elf8848.itey ... -
Hibernate二级缓存 ---- 入门示例
2010-06-27 15:34 4144一. 我们使用oscache来演示 , 引入oscache的j ... -
Hibernate 操作Blob Clob
2010-06-14 16:50 5239Photo.java import java.sql.Bl ... -
Hibernate ---- 控制日志
2010-06-06 11:46 3040Hibernate版本 3.3或3.4 Hibernate ... -
Hibernate悲观锁定与乐观锁定
2010-05-17 15:08 2225悲观锁定 由数据库方面实现. 可见:Hibernate悲观锁 ... -
Hibernate懒加载深入分析
2010-05-14 11:22 8277[size=small] ------------------ ... -
Hibernate批量操作(JDBC批量操作)
2009-03-30 14:52 8393部分内容转自 :http://ga ... -
Hibernate分页查询与泛型
2009-03-26 19:03 7353JE有两篇文章,关于分页查询 与泛型 的,写的很好.这里收藏一 ... -
20 Hibernate 1+N问题的原理与解决
2009-03-04 09:44 13068什么时候会遇到1+N的问题? 前提:Hibernate默认表 ... -
19 Criteria查询,DetachedCriteria离线查询 --做综合查询
2009-03-04 09:35 3726通过Session得到Criteria类的对象 /** ... -
空位空位
2009-03-03 10:22 2315空位空位空位空位 -
17 继承(四)每一个具体的类 映射到一张表
2009-03-02 13:54 2289类(Person) , 男人(Men)继 ... -
16 继承(三)(把前面14,15讲的情况结合起来)
2009-03-02 13:30 2085人类(Person) , 男人(Men)继承"人& ... -
15 继承(二)(每个子类扩展的属性单独保存在一张表中)
2009-03-02 13:07 2064人类(Person) , 男人(Men)继承" ... -
14 继承(一)(整个继承树映射到一张表)
2009-03-02 11:00 2216人类(Person) , 男人(Men)继承" ... -
13 级联和关系维护(Cascade 和Inverse)
2009-03-01 17:58 3033Cascade用来说明当对主对象进行某操作时, 是否对其关联的 ... -
12 映射-- 集合类的映射(Set,List,Map,Array)
2009-03-01 16:18 2613部门类Department , 他有 empa1, emp ... -
11 映射-- 组件映射(人类与姓名类)
2009-03-01 15:26 2355User类: 注意他的name属性 package ...
相关推荐
本篇将深入探讨如何在Spring和Hibernate中实现多对多关联映射,并通过一个具体的教师与学生表的级联增删改查实例来阐述这一过程。 首先,多对多关联是数据库设计中的一种关系类型,表示一个实体可以与多个其他实体...
在数据库关系模型中,一对多关系是常见的关联类型,例如一个学生可以对应多个课程,一个部门可以有多个员工等。MyBatis提供了一对多映射功能,使得在Java对象中可以直接获取到这种关联关系的数据。 1. **配置一对多...
例如,学生和课程之间的关系就是典型的多对多,一个学生可以选修多门课程,一门课程也可以被多个学生选修。 在MyBatis中,处理多对多关系通常涉及到中间表或连接表,这个表用来存储两个主表的外键,形成关联。以下...
以学生、班级和班主任为例,学生与班级是一对多关系,班级与班主任是一对一关系。在`classInfo-mapper.xml`配置文件中,我们定义了三个`resultMap`:`resultStudentInfo`,`resultTeacherInfo`和`resultClassInfo`。...
1. 一对多与多对一映射: 在现实世界中,许多关系表现为一对多或多对一的形式。例如,一个老师可以教授多个学生,而一个学生只能被一个老师教导;同样,一个部门可以包含多个员工,但每个员工只属于一个部门。在...
映射允许一对一、多对一或者一对多的关系,而函数只允许一对一的关系。换句话说,函数是映射的子集,其中每个输入都唯一决定了一个输出。 在学习过程中,学生需要理解映射的概念,能够独立思考和合作学习,以提高对...
本篇将详细探讨Hibernate中的映射关系,主要包括实体之间的一对一、一对多、多对一和多对多四种关系映射。 1. **一对一映射(One-to-One)** 在一对一映射中,两个实体之间存在唯一的关联。这可以通过`@OneToOne`...
在本数据库实验中,我们将构建一个学生成绩管理系统...总的来说,这个数据库实验将涉及数据库理论、C#编程、数据库设计与实施、以及用户界面开发等多个方面的知识,对于提升数据库管理和软件开发的综合能力非常有帮助。
此外,多对一关联实际上与一对多关联非常类似,唯一的区别在于外键的方向。在实际应用中,这种关联经常用于表示一个教师有多门课程,但每门课程只有一个任教教师。 总结来说,Hibernate的关联关系映射允许开发者...
根据给定文件的信息,我们可以提炼出以下相关的IT知识点: ### 一、系统环境与技术栈 #### 1.1 系统环境 - **操作系统**:Windows 或 Mac。...通过对各种技术的合理利用,实现了对学生信息的有效管理和便捷访问。
一对多(One-to-Many)关系映射是最常见的关系类型,一个实体可以与多个其他实体相关联。在Java中,这通常通过`@OneToMany`注解实现。例如,一个教师可以教授多门课程,Teacher类和Course类之间就是一对多关系。...
该系统旨在提供一个便捷、高效、互动的在线平台,实现传统纸质考试向数字化的转变,提高教学效率,减轻教师工作负担,并帮助学生随时随地进行自我测试与学习。 1. **JavaWeb技术基础** JavaWeb是Java编程语言在Web...
-- 学生特有的属性映射 --> <!-- 教师特有的属性映射 --> ``` 在测试方面,`test`目录下的文件可能是JUnit测试用例,用于验证`discriminator`列的映射是否正确工作。测试可能会包含插入数据,然后执行...
《基于SSM框架的多角色学生管理系统设计与实现》 在信息技术日新月异的今天,学生管理系统已经成为了教育机构日常运营中不可或缺的一部分。本文主要介绍了一款基于Java技术,利用Spring、SpringMVC和MyBatis(SSM)...
Hibernate 是一个流行的 Java 持久层框架,它提供了强大的对象关系映射(ORM)功能,使得开发者可以方便地与数据库交互。但是,在使用 Hibernate 时,我们经常会遇到多对多关系的问题,例如在菜单(Menu)和权限...
2. Hibernate:作为对象关系映射(ORM)工具,Hibernate简化了数据库操作,将数据库表与Java类对应,使得开发者无需编写繁琐的SQL语句。在本系统中,Hibernate用于处理学生档案的存储和检索,确保数据的一致性和完整...
【标题】:“管理系统系列--javaweb在线考试系统 学生+教师+管理员.zip”指出这是一个基于JavaWeb技术开发的在线考试系统,涵盖了学生、教师和管理员三个主要角色的功能。这个系统可能包括了完整的试题库管理、考试...