第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
  • 一對一單向外鍵關聯(二)

    如何向數據庫中保存一對一單向外鍵的數據表

    //先生成一個身份證對象-外鍵表

    IdCard card = new IdCard("123456789012345678","張敬嶺");

    //再生成學生對象-主表,如果Date類型是util中的則插入不了數據,換成sql的就可以了,原因是hibernate和數據庫的不兼容

    Students s = new Students(card,"男",new Date(),"太極拳");


    //先保存身份證類再保存students

    session.save(card);

    session.save(s);


    查看全部
  • 一對一單向外鍵:(寫在主表內)

    @oneToOne(cascade=CascadeType.ALL)

    cascade:級聯關系

    CascadeType.ALL:全級聯關系-----級聯刪除,級聯更新,級聯添加

    @JoinColumn(name="pid",unique=true)

    name:主表的外鍵,unique:外鍵也是唯一的

    注意:先保存外鍵對象,再保存主表對象

    順序:

    1,編寫Students實體類(必須添加@Entity注解才能在數據庫創(chuàng)建表)

    2,編寫IdCard實體類(pid,pname)

    ? ? ?@Entity設置實體類,? ?

    @Id

    @GeneratedValue(generator="pid")

    @GenericGenerator(name="pid",strategy="assigned")

    @Column(length=18)

    ?設置主鍵

    ? ? ?設置構造函數,getset等

    3,將IdCard類當做Students的屬性,并在此屬性的get方法上設置外鍵主鍵

    @OneToOne(cascade=CascadeType.ALL)

    @JoinColumn(name="pid",unique=true)

    4,配置xml文件,映射類

    5,編寫測試文件,SchemaExport生成數據表

    查看全部
  • 實體間的映射關系:

    一對一:一個公民對應一個身份證號碼

    一對多(多對一):一個公民有多個銀行賬號

    多對多:一個學生有多個老師,一個老師有多個學生

    查看全部
  • 關系映射級別注解:

    1,一對一單向外鍵

    2,一對一雙向外鍵關聯

    3,一對一單向外鍵聯合主鍵

    4,多對一單向外鍵關聯

    5,一對多單向外鍵關聯

    6,一對多雙向外鍵關聯

    7,多對多單向外鍵關聯

    8,多對多雙向外鍵關聯

    查看全部
  • @Transient:

    標識該屬性不是一個到數據庫表的字段的映射,ORM框架可以忽略該屬性

    查看全部
  • @EmbeddedId:使用嵌入式主鍵類實現復合主鍵

    注意:嵌入式主鍵類必須實現Serializable接口,必須有默認的public無參數的構造方法,必須覆蓋equals和hashCode方法

    創(chuàng)建一個類,此類中的字段是其他實體類的復合主鍵:

    public class StudentsPK implements Serializable{

    ?//實現序列化接口后最好設定一個序列化版本號

    //序列化版本號是為了反序列化成功而設置的,若是不想被反序列化則可以設置一個動態(tài)的版本號,可以到有道云筆記中查看

    ?private static final long serialVersionUID=1L;

    ? private String id;//身份證號碼

    ? private String sid;//學號

    ? public StudentsPK(){}

    ? get/set方法

    ? equals和tostring方法

    }

    //測試

    首先標識嵌入類和嵌入類id

    然后給嵌入類賦值:StudentPK pk=new StudentPK();

    pk.setID("123345");pk.setSid("12345");

    然后再Students s=new Students(pk,"張三豐","男"。。。。);

    最后:session.save(s);tx.commit();


    查看全部
  • @embedded是注釋屬性的,表示該屬性的類是嵌入類

    注意:同時嵌入類也必須標注@Embeddable注解

    查看全部
  • @Column注解:描述了數據庫表中該字段的詳細定義

    常用屬性:

    name:默認屬性和字段名一致,不一致則用此屬性設置

    nullable:表示該字段是否允許為null,默認為true

    unique:表示該字段是否是唯一標識,默認為false

    length:標識該字段的大小,僅對string類型的字段有效,默認255

    insertable:表示在ORM框架執(zhí)行插入操作時,該字段是否應該出現在INSERT語句中,默認為true

    updateable:表示在ORM框架執(zhí)行更新操作時,該字段是否應該出現在UPDATE語句中,默認為true。對于一經創(chuàng)建就不可以更改的字段,該屬性非常有用,比如birthday字段


    查看全部
  • 1,字符型主鍵使用

    ? ? ? public void addStudents(){

    ? ? ? //創(chuàng)建hibernate配置對象

    ? ? ? ?Configuration config = new Configuration().configure();

    ? ? ? //創(chuàng)建服務注冊對象

    ? ? ? ?ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(config.getProperties()).buildService.........

    ? ? ? ?SessionFactory sessionFactory = config.buildSessionFactory(serviceRegistry);

    ? ? ? //創(chuàng)建會話

    ? ? ? ?Session session = sessionFactory.getCurrentSession();

    ? ? ? //創(chuàng)建事務

    ? ? ? ?Transaction tx = session.beginTransaction();

    ? ? ? //創(chuàng)建一個學生對象

    ? ? ? ?Address add = new Address("700005","湖北武當山","13641095182");

    ? ? ? ?Students s = new Students("S0000001","張三豐","男",new Date(),"太極拳",add);

    ? ? ? ? session.save(s);

    ? ? ? ? tx.commit();

    ? ? }

    查看全部
  • 1,主鍵是整型的,就可以使用自動增長類型,auto(根據底層數據庫自動選擇)

    ? ? ?@Id

    ? ? ?@GeneratedValue(strategy=GenerationType.AUTO)//(主鍵策略,默認為auto)

    ? ? ?private int sid;

    2,主鍵是字符串類型,要么不寫上@GeneratedValue,要么就用hibernate的注解而不是JPA的@GeneratedValue形式

    ? ? ?@Id

    ? ? ?@GeneratedValue(generator="sid")//先設置一個策略生成器

    ? ? ?@GenericGenerator(name="sid",strategy="assigned")//字符串主鍵生成策略

    ? ? ?@Column(length=8)

    ? ? ?private String sid;

    查看全部
  • 1,@GeneratedValue(strategy=GenerationType,generator="")

    ? ? 設置主鍵的生成策略

    2,strategy表示主鍵生成策略,取值有:

    ? ? ?GenerationType.Auto:根據底層數據庫自動選擇(默認)

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 必須是整型

    ? ? ?GenerationType.INDENTITY:根據數據庫的Identity字段生成

    ? ? ?GenerationType.SEQUENCE:使用sequence來決定主鍵的取值

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?oracle沒有自動增長類型,類似的是序列

    ? ? ?GenerationType.TABLE:使用指定表來決定主鍵取值

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?結合@TableGenerator使用

    ? 3,使用:

    ? ? ? ? ? @Id

    ? ? ? ? ? @TableGenerator(name="tab_cat_gen",allocationSize=1)

    ? ? ? ? ? @GeneratedValue(Strategy=GenerationType.Table)

    ? ? ? ? ? Generator-表示主鍵生成器的名稱,這個屬性通常和ORM框架相關,例如:Hibernate可以指定uuid等主鍵生成方式

    查看全部
  • 1,@Id:如果有多個屬性定義為主鍵屬性,該實體類必須實現serializable接口(implements Serializable)

    2,若是作為主鍵的字段是字符串類型,那么必須設置好字段的長度才行

    ? ? ?因為如果不設置的話默認長度為255,但是mysql規(guī)定主鍵字段不能過長很明顯255已經超出了限制

    ? ? ?這時候需要在字段上設置@Column(length=8)

    查看全部
  • @Id,@SequenceGenerator,@GeneratedValue,@Column,@Embedded,@EmbeddedId,@Lob,@Version,@Basic,@Transient

    查看全部
  • 1,@Embeddable:標識一個非Entity類可以嵌入到另一個Entity類中作為屬性而存在----嵌入類

    2,@Embeddable標識的類作為一個實體類的屬性存在時,在數據庫的數據表中的表現是,會將嵌入類中的幾個屬性也作為字段

    ? ? ?比如實體類為student,嵌入類為address,address中有郵編,地址,聯系電話三個字段,那么在數據表中就會存在此三個字段,而不是將address作為一個整體字段

    查看全部
  • 1,@Table注解 常用屬性:name,catalog,schema

    2,shema屬性和catalog屬性,各個數據庫支持不一致

    ? ? ?oracle: 不支持catalog,schema就是 oracle user ID

    ? ? ?mysql:不支持catalog,schema就是數據庫名字

    ? ? ?sqlserver:catalog是數據庫名,不支持schema

    ? ? ?DB2:不清楚

    3,@Table和@Entity配合使用

    ? ? ? @Entity

    ? ? ? @Table(name="student")

    ? ? ? ?public class student{


    ? ? ? ? }


    查看全部

舉報

0/150
提交
取消
課程須知
學習本門課程前,需要具備以下技能: 1、精通Java語法和面向對象思想。 2、掌握JDBC數據庫開發(fā)流程 3、熟悉SQL語句
老師告訴你能學到什么?
1、掌握類級別注解、屬性基本注解和關聯映射注解 2、能夠靈活應用Hibernate注解進行開發(fā)

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!