为了账号安全,请及时绑定邮箱和手机立即绑定
  • Hibernate注解——@Table注解 II -Catalog:将远程或本地的数据库服务器中的实例或库映射到用户主机,以方便用户执行各种操作。 -Schema:数据库对象的集合,一个用户一般对应一个schema。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • Hibernate注解——@Table注解 I 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • Hibernate注解——@Entity注解 Ps1:若表名与实体类名相同,(name==Name)视为相同。 Ps2:@Id 给实体类标识主键。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • Hibernate注解——hibernate.cfg.xml 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • Hibernate注解——简介 一、Hibernate注解简介: 1.使用注解的目的:为了简化繁琐的ORM映射文件(*.hbm)的配置。 二、JPA与Hibernate的关系: 1.JPA全称Java Persistence API。 2.JPA注解是JAVAEE的规范和标准。 3.JPA是标准接口,Hibernate是它的一种实现,但是其功能是JPA的超集,更加强大。 4.Hibernate依靠hibernate-annotation,hibernate-entitymanager和hibernate-core三个组件来实现。 5.开发中优先使用JPA注解,更有利于程序的移植和扩展。 【温馨提示:JavaSE/EE、SSH/SSM、Hybrid APP、JQ/JS/CSS3/H5等编程爱好者关注我,加我慕课好友,互相学习,共同进步!】
    查看全部
  • 映射关系总结
    查看全部
    0 采集 收起 来源:课程总结

    2016-08-02

  • Java 持久化的 API 接口
    查看全部
  • JPA注解(除关系映射)
    查看全部
    0 采集 收起 来源:课程总结

    2016-07-30

  • 当使用双向一对一、双向多对多时.都需要在某一方中使用@joinColumn(mappedBy="xxx")注解,指定该方被另一方关联(相当于把控制权抛出). 一对一时,mappedBy应该设置为另一方的主键属性名. 多对多时,mappedBy应该设置为另一方的Set类型的属性名. 双向多对多: @Entity public class Student{ @Id private int sid; private String sname; @ManyToMany @JoinTable( name="teachers_students", joinColumns={@JoinColumn(name="sid")}, inverseJoinColumns={@JoinColumn(name="tid")} ) private Set<Teacher> teacher; } @Entity public class Teacher{ @Id private int tid; private String name; @ManyToMany(mappedBy="teacher") private Set<Student> student; }
    查看全部
  • 多对多单向外键 学生和教师构成多对多的关联关系. 其中一个多方持有另一个多方的集合对象. 多对多关系中,必须存在一个中间表来表示两者的关系(可以通过注解生成表). 如果在一对多、多对一关系中,可以直接在多方表创建一个关联字段,或者使用中间表也可以. 学生持有教师的集合(多对多) 学生类: @ManyToMany @JoinTable( name="teachers_students" , joinColumns={@JoinColumn(name="sid")}, inverseJoinColumns={@JoinColumn(name="tid")} ) @JoinTable注解用来标识中间表.可以使用Hibernate自动生成.也可以手动生成. name属性用来标识中间表的表名. joinColumns属性用来标识中间表字段的名称. inverseJoinColumns属性用来标识关联的表位于中间表字段的名称. @Entity public class Student{ @Id private int sid; private String sname; @ManyToMany @JoinTable( name="teachers_students", joinColumns={@JoinColumn(name="sid")}, inverseJoinColumns={@JoinColumn(name="tid")} ) private Set<Teacher> teacher; } @Entity public class Teacher{ @Id private int tid; private String name; } 在数据库中存在学生表、教师表、学生教师关系表.关系表中则有sid、tid字段.
    查看全部
  • 一对多(多对一)的双向外键关联 @Entity public class ClassRoom{ @Id private Integer cid; private String name; @OneToMany(cascade="CascadeType.ALL") @JoinColumn(name="cid")) private Set<Student> set; } @Entity public class Student{ @Id @GeneratedValue(generator="ass") @GenericGenerator(name="ass",strategy="assigned") private String sid; private String gender; @ManyToOne(cascade="CascadeType.ALL") @JoinColumn(name="cid")) private ClassRoom classRoom; } 在保存数据时,无论是先保存一方还是多方都可以.(添加一方即可,因为设置了级联)
    查看全部
  • 一对多单向外键关联: 无论使用一对多还是多对一,外键字段都是存在多方的表当中. 使用@OneToMany(cascade={CascadeType.ALL},fetch=FetchType.LAZY) @JoinColumn(name="cid");指定外键名字. 使用多对一时,多方的抓取策略fetch一般设置为EAGER、一方设置为LAZY. 当使用单向的一对多关联时,要先保存多方的数据再保存一方的数据.外键存在多方表中. @Entity public class ClassRoom{ @Id private Integer cid; private String name; @OneToMany(cascade="CascadeType.ALL") @JoinColumn(name="cid")) private Set<Student> set; } @Entity public class Student{ @Id @GeneratedValue(generator="ass") @GenericGenerator(name="ass",strategy="assigned") private String sid; private String gender; private ClassRoom classRoom; } 保存数据时需要先保存班级再保存学生.设置了级联,当保存班级信息时,如果不存在学生信息会自动保存学生信息.
    查看全部
  • 多对一单向外键关联 @ManyToOne、@JoinColumn. @ManyToOne注解 cascade:指定级联关系(CascadeType.ALL). fetch:指定抓取策略(FetchType.EAGER). @JoinColumn注解 name属性:指明作为外键的列名(不需与关联表的主键属性名保持一致,要与表中的外键列名保持一致). 默认情况下,关联的实体的主键一般是用来做外键的,但如果此时不想主键作为外键.则需要设置referencedColumnName属性. referencedColumnName属性:指定外键表与参照表的哪个属性进行关联(指定参照表字段的列名). 如果不指定referencedColumnName属性,则默认与关联表的主键关联. @Entity public class ClassRoom{ @Id private Integer cid; private String name; } @Entity public class Student{ @Id @GeneratedValue(generator="ass") @GenericGenerator(name="ass",strategy="assigned") private String sid; private String gender; @ManyToOne(cascade="CascadeType.ALL") @JoinColumn(name="classID") private ClassRoom classRoom; }
    查看全部
  • 一对一双向外键
    查看全部
  • 录入数据时,要先保存参照表再保存外键表. 一对一的双向关联: 使用双向关联,在参照表中仍然要存在外键表类类型的属性,且必须使用@OneToOne注解的mappedBy属性,来指明参照表被谁关联(抛出控制权).不需使用@JoinColumn注解. 如果不使用mappedBy属性,并且使用@JoinColumn注解指定另一方的主键,则在保存数据时就会发生错误,类似死锁问题.因为双方都是一方.使用@JoinColumn都会在自己表建立外键. 因此使用一对一的双向关联,在参照表中是不会存在外键表的关联字段(数据库). 而在外键表中则存在参照表的关联字段(数据库). 但是都存在另一方类类型的属性. 设计数据表时,参照表不需有关联字段,而外键表则需要有一个关联参照表主键的字段. 参照表: @Entity public class Idcard{ @Id @GeneratedValue private Integer iid; private String idnum; @OneToOne(mappedBy="sid") //外键表的主键名 private Student stu; } 外键表: @Entity public class Student{ @Id private Integer sid; private String name; @OneToOne @joinColumn(name="sid") private Idcard idcard; }
    查看全部

举报

0/150
提交
取消
课程须知
学习本门课程前,需要具备以下技能: 1、精通Java语法和面向对象思想。 2、掌握JDBC数据库开发流程 3、熟悉SQL语句
老师告诉你能学到什么?
1、掌握类级别注解、属性基本注解和关联映射注解 2、能够灵活应用Hibernate注解进行开发

微信扫码,参与3人拼团

微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!