您好,登錄后才能下訂單哦!
這篇文章主要介紹“SQLServer數據庫主鍵及復合主鍵都有哪些配置”,在日常操作中,相信很多人在SQLServer數據庫主鍵及復合主鍵都有哪些配置問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”SQLServer數據庫主鍵及復合主鍵都有哪些配置”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
@Id@GeneratedValue@Column(name="RecId")publicintgetRecId(){returnRecId;}
復合主鍵個人認為用到的很少,嗚嗚還是碰到了,由于沒有經驗,東裝西摸,浪費了很長時間才把復合主鍵配好了,并且還出了很多異常,如下所示:
一個表中可以有多個字段組成的主鍵
createtableEL_TransIdTable(TableNamenvarchar(50),LastTransIdnvarchar(15),Prefixnchar(5),DomainIdnvarchar(10)primarykey(TableName,DomainId))
其中TableName、DomainId兩個字段作為此表的主鍵。
在配置中主要分為兩個步驟:
1為復合主鍵,建立一個復合主鍵類,這個類包括兩個字段,(有幾個字段組成主鍵就包含幾個字段)這個復合主鍵類實現Serializable接口,有public無參的構造方法重寫equals和hashcode方法。
2:在實體類里面用idclass標示復合主鍵類詳情如下:
新建復合主鍵類TableDomainIdPK.java。
packagecom.barcode.Model;importjava.io.Serializable;publicclassTableNameDomainIdPKimplementsSerializable{publicTableNameDomainIdPK(){}privateStringTableName;privateStringDomainId;publicStringgetTableName(){returnTableName;}publicvoidsetTableName(StringtableName){TableName=tableName;}publicStringgetDomainId(){returnDomainId;}publicvoidsetDomainId(StringdomainId){DomainId=domainId;}@OverridepublicinthashCode(){finalintPRIME=31;intresult=1;result=PRIME*result+((TableName==null)0:TableName.hashCode());result=PRIME*result+((DomainId==null)0:DomainId.hashCode());returnresult;}@Overridepublicbooleanequals(java.lang.Objectobj){if(this==obj){returntrue;}if(null==obj){returnfalse;}finalTableNameDomainIdPKother=(TableNameDomainIdPK)obj;if(DomainId==null){if(other.DomainId!=null){returnfalse;}}elseif(!DomainId.equals(other.DomainId)){returnfalse;}if(TableName==null){if(other.TableName!=null){returnfalse;}}elseif(!TableName.equals(other.TableName)){returnfalse;}returntrue;}}
新建實體類EL_TransIdTable.java。
SQLServer數據庫主鍵及復合主鍵有哪些配置
實體類中的配置如下:
packagecom.barcode.Model;importjava.io.Serializable;importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.Id;importjavax.persistence.IdClass;importjavax.persistence.Table;@Entity@Table(name="EL_TransIdTable")@IdClass(TableNameDomainIdPK.class)publicclassEL_TransIdTableimplementsSerializable{privateStringTableName;privateStringLastTransId;privateStringPrefix;privateStringDomainId;@Id@Column(name="TableName",nullable=false)publicStringgetTableName(){returnTableName;}publicvoidsetTableName(StringtableName){TableName=tableName;}@Column(name="LastTransId")publicStringgetLastTransId(){returnLastTransId;}publicvoidsetLastTransId(StringlastTransId){LastTransId=lastTransId;}@Column(name="Prefix")publicStringgetPrefix(){returnPrefix;}publicvoidsetPrefix(Stringprefix){Prefix=prefix;}@Id@Column(name="DomainId",nullable=false)publicStringgetDomainId(){returnDomainId;}publicvoidsetDomainId(StringdomainId){DomainId=domainId;}publicvoidPrint_Info(){System.out.println(this.getDomainId()+this.getLastTransId()+this.getPrefix()+this.getTableName());}}
到此,關于“SQLServer數據庫主鍵及復合主鍵都有哪些配置”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。