数据库表多对多问题(跪求)

selaginella 2013-07-02 09:12:27
教师可以教多门专业, 专业可以被多个教师教,其中数据库设计为三张表,分别为教师表、专业表、教师和专业的关联表,其中关联表中包含教师号和专业号,分别参照教师表和专业表,现在想实现的功能是加入教师信息和专业信息,可以保存教师教的专业是什么,该如何向关联表插入数据,将教师和专业关联起来?
...全文
140 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
花木兰1闪21A 2013-07-02
  • 打赏
  • 举报
回复

public class Teacher { 
   private int TID;   
 private List<Major> majors ;}
 public class Major {  
  private int MID; 
   private List<Major> ;}
这样就行了,不用new
花木兰1闪21A 2013-07-02
  • 打赏
  • 举报
回复
<class name="Teacher"> 
   <id name="id" column="TID">    
    <generator class="native"/>    </id> 
   <set name="majors"  table="Teacher_Major" inverse="false">   
     <key column="TeacherId"/>    
    <many-to-many column="MajorId"         
   class="Major"/>   
 </set></class>
public class Teacher {
	private int TID;
	private List<Major> majors = new ArrayList<Major>();
}

public class Major {
	private int MID;
	private List<Major> majors = new ArrayList<Major>();
}


还有什么属性自己加,配置文件里也有加,类中加get set方法 测试这样就行了: List<Major> majors = new ArrayList<Major>(); Major m = new Major(); majors.add(m); Teather t = new Teacher(); t.setMajors(majors); //这有什么属性往里set就行了 session.save(t);
花木兰1闪21A 2013-07-02
  • 打赏
  • 举报
回复

<class name="Teacher">
    <id name="id" column="TID">
        <generator class="native"/>
    </id>
    <set name="majors"  table="Teacher_Major">
        <key column="TeacherId"/>
        <many-to-many column="MajorId"
            class="Major"/>
    </set>
</class>

<class name="Major">
    <id name="id" column="MID">
        <generator class="native"/>
    </id>
    <set name="techers" inverse="true"  table="Teacher_Major">
        <key column="MajorId"/>
        <many-to-many column="TeacherId"
            class="Teacher"/>
    </set>
</class>
  • 打赏
  • 举报
回复
用个中间表存放多对多表的主键值关联
victor_woo 2013-07-02
  • 打赏
  • 举报
回复
引用 楼主 selaginella 的回复:
教师可以教多门专业, 专业可以被多个教师教,其中数据库设计为三张表,分别为教师表、专业表、教师和专业的关联表,其中关联表中包含教师号和专业号,分别参照教师表和专业表,现在想实现的功能是加入教师信息和专业信息,可以保存教师教的专业是什么,该如何向关联表插入数据,将教师和专业关联起来?
无需插入额外的数据,现有的已经够了

教师表 T_TEACHER 专业表T_MAJOR 教师和专业的关联表 T_TEACHER_MAJOR
T_TEACHER(TID,TNAME,TAGE....,TS);
T_MAJOR(MID,MNAME,MDESC....,TS);
T_TEACHER_MAJOR(TID,MID,TS);

教师教的专业是什么:
SELECT T_TEACHER_MAJOR.TID,T_TEACHER.TNAME,T_TEACHER_MAJOR.MID,T_MAJOR.MNAME
   FROM T_TEACHER_MAJOR,T_TEACHER,T_MAJOR
   WHERE T_TEACHER_MAJOR.TID = T_TEACHER.TID
      AND T_TEACHER_MAJOR.MID = T_MAJOR.MID;
如果确实需要一个“表”,把上面的sql做成视图
海鸥鱼蛋 2013-07-02
  • 打赏
  • 举报
回复
在教师表增加set<专业>,在专业增加set<教师> hibernate配置成多对多。
move01 2013-07-02
  • 打赏
  • 举报
回复
加个中间表,将多对多的主键串起来...同意一楼
a645623 2013-07-02
  • 打赏
  • 举报
回复
教师表 TID 教师信息 专业表 CID 专业信息 关联表 TID CID
lkq_david 2013-07-02
  • 打赏
  • 举报
回复
用hibernate的话可以配级联操作的,保存一方,另外的信息也就保存了
1. 思考一下   学习Java之前,先别急,静下心来好好想想:   1)你对学习Java是否有兴趣?   2)你是否能静下心来坚持不懈地学习?   嗯,这是个容易但又绝对不应该忽略的问题,你确信自己对Java感兴趣、而且又有吃苦的准备,那你才可能学好Java!如果具备这两点条件,就请继续往下看……   2. 准备一下   请不要把你的学习Java之路和其它计算机技术分开看待,技术的联系往往是千丝万缕的,你应该掌握一些学习Java所涉及的基础知识,对于“CLASSPATH要怎么设置啊”、“跪求JDK下载地址”等等问题,你不该问,因为Internet上太多答案了,甚至换个角度说,你是不是还不适合直接学习编程?   1)买本Java学习用书。   JDK 6正式版刚刚推出,市面上你暂时买不到JDK6的书籍,但我仍推荐你买一本适合入门的、较新JDK版本的Java书籍,那么,你现在选择一本讲述JDK5的入门书籍还是有条件的。我可以推荐一些入门书,但是我不打算这么做,因为合我口味的,不一定适合你。但无论如何,《Thinking In Java》绝对不应该作为你入门Java的第一本书籍!   记住,网络上学习Java的资源很多,但基本不够系统,拥有一本Java入门书籍,是你系统学习Java的基础。   2)准备Java学习环境。   准备你的学习环境,很简单,安装JDK6,然后用类似UltraEdit、EditPlus的文本编辑器配置你的学习环境,Internet上有很多关于如何配置的文章。初学Java,不建议用IDE工具,通过一行行的敲代码,你会碰到很多问题,只有这样,你才能学会怎样解决问题,并加深自己对Java的理解。   准备好后,开始进入激动人心的Java学习里程吧!   3. Java基础学习之路   学习Java的过程虽然辛苦些,但又是处处有精彩!学习过程中的心态一定要保持专一,网上关于语言间的“PK”到处都是,别被浮躁影响!认准了Java,你就坚持!克服心魔,恒心最终会给你回报的。   Java的体系分为Java SE、Java EE和Java ME(JDK 5.0以前分别叫J2SE、J2EE和J2ME),Java的敲门砖就是Java SE了,也就是你要入门学习的内容,不论你日后是选择哪个体系领域作为发展方向,你都得从Java SE起步。   学习Java SE,打好Java基础;如果想学Java EE(对不起,我不了解JavaME,所以我无法涉及JavaME的相关内容),对于AWT、Swing是否要学习呢,我个人是觉得还是要知道其所以然的,特别是其事件处理模式,我强烈建议初学者一定要弄清楚,其他具体的开发就不一定要全面掌握了,毕竟AWT、Swing方面的内容足够用几本大部头的书才能描述详尽;当然,如果你的工作就是做AWT、Swing开发,那就另当别论了。   I/O、Thread都是基础之一。   4. Java EE学习之路   学习了Java SE,还只是完成“万里长征”的第一步。   接下来选择学习Java EE或是Java ME(或者你还想不断深入学习JavaSE,只要你喜欢,你可以一直深入下去,就像前面所说的,我不会讲到Java ME的学习);估计选择Java EE方面的学习者会多一些,JavaEE所涉及技术非常多,考虑到初学者的接受程度,我会尽量从最常用的角度来介绍。   学习Java EE,在开发环境上不建议再用文本编辑器,我感觉NetBeans 5.5(目前最高正式版本)很适合初学者,我个人也很喜欢NetBeans,如果你喜欢用别的IDE如Eclipse,都没问题,看自己喜欢吧。   4.1 学习JSP/Servlet   Java EE最高版本目前是5.0版本。   在JavaEE中,首先要学习JSP/Servlet(结合Tomcat、MySQL)技术,建议JSP1.2/2.X的知识都要掌握,毕竟现在很多的在用系统都还是基于JSP1.2,学习JSP,还必须掌握一些外延技术,如:你还得掌握HTML基础知识,最好再掌握些JavaScript(目前正火的AJAX技术之一)、CSS的技术,而了解XML是必不可少的(至少描述性配置信息是通过XML来描述的)。在学习JSP/Servlet过程中,应该结合学习JDBC、数据库开发技术,毕竟绝大多数Java Web项目都是和数据库紧密结合的。   4.2 学习数据库开发技术   这里我想重点说一下数据库开发技术,数据库技术是做业务系统必备技能,JavaWeb开发人员最低程度都应该掌握SQL语句的使用!数据库技术大体可分为DBA技术和数据库开发技术,对于开发而言,应侧重数据库开发技术,而数据库基本操作,也是要掌握的。常用数据库有DB2、Oracle、SQLServer、My
哇塞电影网址大全 v20190303 更新日志 1.删除无效网址,更换主站地址。 2.优化搜索页面安全设置。 3.整合优化页面设置。 哇塞电影网址大全简介 哇塞电影网址大全,吸取了以往各种导航网址程序的优点,最大程度的完善优化了各项功能和指标,采用谁对我站贡献大,我站也给予他宣传和展示的机会就越多的流量交换模式,只要您在本系统注册登记您的网址,然后在你网站做好我站连接或是挂上流量互换代码,每次您网站有用户访问到放置我站流量互换代码的站,那么你的网站将在最近入站以及你网站所在分类的第一位置!连接双方公正平等。 哇塞电影网址大全系统前台简介: 1.采用ASP ACCESS架构,安全稳定,防注入功能; 2.新闻文章发布功能支持无限级分类,方便自由; 3.数据库经过防下载等安全处理,后台可超强命名,随意改动; 4.每来访一个IP,来访网站就会自动排到第一,当天来路不同,显示颜色也不同,鼓励点入; 5.前台统计数据调用,最新点入网站调用,未审核网站调用等; 6.申请加入电影网址大全的网站按最后点进的时间排序首页和分类显示链接; 7.分类以昨日点入时间为准,每晚十二点后生成静态; 8.每来访一个IP,就会自动排到第一,当天来路次数不同,显示颜色也不同:有1次即显示,10次即套蓝色,30次即套红色加粗; 9.首页白天3分钟,晚上5分钟自动更新一次,全站24小时手动更新一次; 10.站内搜索功能,方便用户找到自己想要的网址; 11.程序全面优化和升级,增强对搜索引擎的收录功能; 12.流量互换功能,最大程度互换流量。 哇塞电影网址大全系统后台功能详细说明: 网站管理系统: 1.网站基本信息,说明:里面设置,网站标题,LOGO,关键词,统计代码,版权信息! 2.图片广告管理,说明:网站所有图片广告修改的地方,在首页可以看到所有图片广告,其中ads09是在网址内页显示!其它的都在首页和分类页有位置显示! 3.顶部文字广告管理,说明:这里的文字,首页,特别推荐里面显,分类首页和分类页,记得,改后要在生成html管理里,生成一下首页! 4.添加商家文字广告,说明:这里的文字,首页,中间部分,广告,那里的文字,在图片广告下面,一行七个! 5.管理商家文字广告,说明:修改删除商家文字广告! 6.管理帐号设置,说明:管理员用户名,密码的修改! 9.客户留言管理,说明:留言本的回复,修改和删除! 哇塞电影网址大全系统网站分类管理: 1.类别添加管理,说明:分类添加删除管理,这里说明一下添加时有首页显示,导航就显示在首页上面,添加时选酷站显示,就在首页下面酷站里调用! 2.类别删除管理,说明:删除不想要的分类! 3.类别修改管理,说明:分类修改里,有显示,[首][酷]就是上面说明的首页显示,和酷站显示! 哇塞电影网址大全系统网址管理系统: 1.添加网址链接,说明:用于后台管理员手工添加网址 2.添加实用查询|管理实用查询,说明:添加后在首页实用工具里显示! 3.添加名站导航|管理名站导航,说明:添加后在首页名站导航里显示! 4.添加友情链接|管理友情链接,说明:添加后在首页下部友情链接里显示! 5.查看所有的网址,说明:包含站长加的和用户自己加的! 6.站长加入的网址,说明:站长加入的网址! 7.用户加入已审核,说明:用户提交的网址,并通过审核的,说明一下,本站有自动审核功能,开启关闭,在 网站管理系统-网站基本信息里设置! 8.用户加入未审核,说明:用户提交的网址没审的,也就是没有作上本站链接的,或是作上链接没有点击到本站的! 9.有来路入未审核,说明:一般用户认为,有来路就应当审核了,这个功能,是为了关闭自动审核而设计的,手工审核的不管有没有来路,都要站长审核的! 10.加入黑名单网站,说明:加入黑名单的网址,点击这个导航,进入后,可以删除,和取消黑名单! 11.总来路小于五次,说明:本设计用于客户作上本站链接,点入量过小,没有贡献的站,可以多选删除! 12.常用维护共三项,说明:(1)开通所有未审的,一般不用这个,如果想要提交的站就收录,可以点击这个功能!(2)删除重复的网站,有一些站长提交过了,又提交了多次或是用二级域名提交,这样可以删除重复的网站!(3)删除所有未审核的站点,(4)清空所有网址,这个点时要注意,点击了,所有网址就都没有了! 13.站内报错,说明:用户在网址详提交网址打不开的情况页点击的! 14.站内网站搜索,说明:可以按名称,按网址,按分类,按ID号进行搜索! 哇塞电影网址大全系统模版修改管理: 首 页 模版修改 分类页模版修改 关于本站页模板 (这里建议会一些HTML知识的站长修改,如果不会不建议修改以免出错,修改时一定要备份) 生成html管理: 生成分类页面 生成生成主页及其他页 重置统计数据 清除昨天点入数据 清除总点入数据 清除总点出数据 (常用到上面两个,生成分类页和生成主页,也主是首页!每当后台修改了内容时,要马上显示出来就要手动生成,因为前台自动生成要3分钟!) 数据库管理: 备份数据库 恢复数据库 压缩数据库 (常用到备份数据库,定期备份一下,免费数据库出错找不回来数据!) 1.管理目录admin,管理员用户名5a3a,密码5a3acom 2.修改数据库名5a3acom.asa修改成自己想要的名即可! 3.后台分类建议自己修改,要不大家的分类都相同影响百度收录。 哇塞电影网址大全系统前台页面  哇塞电影网址大全系统后台管理 管理目录admin,管理员用户名5a3a,密码5a3acom 后台页面: 相关阅读 同类推荐:搜索/网址导航源码

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧