成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL Server數據庫主鍵及復合主鍵的配置

數據庫 SQL Server
本文主要介紹了SQL Server數據庫中主鍵以及復合主鍵的一些配置問題,希望能對您有所幫助。

本文主要介紹了SQL Server數據庫中主鍵以及復合主鍵的配置,接下來我們就開始介紹。

一般情況下一個表中的主鍵,id intidentity(1,1)primary key

這是最常見的咯,用注解的形式標記這種主鍵也很簡單

 

  1. @Id    
  2.  
  3. @GeneratedValue    
  4.  
  5. @Column(name="RecId")    
  6.  
  7. public int getRecId() {    
  8.  
  9. return RecId;    
  10.  
  11. }   

 

復合主鍵個人認為用到的很少,嗚嗚還是碰到了,由于沒有經驗,東裝西摸,浪費了很長時間才把復合主鍵配好了,并且還出了很多異常,如下所示:

一個裱中可以有多個字段組成的主鍵  

  1. create table EL_TransIdTable(    
  2.  
  3. TableName nvarchar(50) ,    
  4.  
  5. LastTransId nvarchar(15),    
  6.  
  7. Prefix nchar(5),    
  8.  
  9. DomainId nvarchar(10) primary key(TableName,DomainId)    
  10.  
  11. )   

 

其中TableName 、DomainId兩個字段作為此表的主鍵。

在配置中主要分為兩個步驟:

1 為復合主鍵,建立一個復合主鍵類,這個類包括兩個字段,(有幾個字段組成主鍵 就包含幾個字段 )這個復合主鍵類實現Serializable接口,有public 無參的構造方法 重寫equals 和hashcode方法。

2:在實體類里面用idclass標示復合主鍵類 詳情如下:

新建復合主鍵類TableDomainIdPK.java。

 

  1. package com.barcode.Model;    
  2.  
  3. import java.io.Serializable;    
  4.  
  5. public class TableNameDomainIdPK implements Serializable{    
  6.  
  7. public TableNameDomainIdPK(){    
  8.  
  9. }    
  10.  
  11. private String TableName;    
  12.  
  13. private String DomainId;    
  14.  
  15. public String getTableName() {    
  16.  
  17. return TableName;    
  18.  
  19. }    
  20.  
  21. public void setTableName(String tableName) {    
  22.  
  23. TableName = tableName;    
  24.  
  25. }    
  26.  
  27. public String getDomainId() {    
  28.  
  29. return DomainId;    
  30.  
  31. }    
  32.  
  33. public void setDomainId(String domainId) {    
  34.  
  35. DomainId = domainId;    
  36.  
  37. }    
  38.  
  39. @Override    
  40.  
  41. public int hashCode() {    
  42.  
  43. final int PRIME = 31;    
  44.  
  45. int result =1;    
  46.  
  47. result=PRIME*result+((TableName==null)?0:TableName.hashCode());    
  48.  
  49. result=PRIME*result+((DomainId==null)?0:DomainId.hashCode());    
  50.  
  51. return result;    
  52.  
  53. }    
  54.  
  55. @Override    
  56.  
  57. public boolean equals(java.lang.Object obj) {    
  58.  
  59. if(this ==obj){    
  60.  
  61. return true;    
  62.  
  63. }    
  64.  
  65. if(null ==obj ){    
  66.  
  67. return false;    
  68.  
  69. }    
  70.  
  71. final TableNameDomainIdPK other=(TableNameDomainIdPK)obj;    
  72.  
  73. if(DomainId==null){    
  74.  
  75. if(other.DomainId!=null){    
  76.  
  77. return false;    
  78.  
  79. }    
  80.  
  81. }else if(!DomainId.equals(other.DomainId)){    
  82.  
  83. return false;    
  84.  
  85. }    
  86.  
  87. if(TableName==null){    
  88.  
  89. if(other.TableName!=null){    
  90.  
  91. return false;    
  92.  
  93. }    
  94.  
  95. }else if (!TableName.equals(other.TableName)){    
  96.  
  97. return false;    
  98.  
  99. }           
  100.  
  101. return true;    
  102.  
  103. }    
  104.  
  105. }   

 

新建實體類EL_TransIdTable.java。

實體類中的配置如下:

 

  1. package com.barcode.Model;    
  2.  
  3. import java.io.Serializable;    
  4.  
  5. import javax.persistence.Column;    
  6.  
  7. import javax.persistence.Entity;    
  8.  
  9. import javax.persistence.Id;    
  10.  
  11. import javax.persistence.IdClass;    
  12.  
  13. import javax.persistence.Table;    
  14.  
  15. @Entity       
  16.  
  17. @Table(name="EL_TransIdTable")    
  18.  
  19. @IdClass(TableNameDomainIdPK.class)    
  20.  
  21. public class EL_TransIdTable implements Serializable {    
  22.  
  23. private String TableName;    
  24.  
  25. private String LastTransId;    
  26.  
  27. private String Prefix;    
  28.  
  29. private String DomainId;    
  30.  
  31. @Id    
  32.  
  33. @Column(name="TableName"nullable = false)    
  34.  
  35. public String getTableName() {    
  36.  
  37. return TableName;    
  38.  
  39. }    
  40.  
  41. public void setTableName(String tableName) {    
  42.  
  43. TableName = tableName;    
  44.  
  45. }       
  46.  
  47. @Column(name="LastTransId")    
  48.  
  49. public String getLastTransId() {    
  50.  
  51. return LastTransId;    
  52.  
  53. }    
  54.  
  55. public void setLastTransId(String lastTransId) {    
  56.  
  57. LastTransId = lastTransId;    
  58.  
  59. }    
  60.  
  61. @Column(name="Prefix")    
  62.  
  63. public String getPrefix() {    
  64.  
  65. return Prefix;    
  66.  
  67. }    
  68.  
  69. public void setPrefix(String prefix) {    
  70.  
  71. Prefix = prefix;    
  72.  
  73. }       
  74.  
  75. @Id    
  76.  
  77. @Column(name="DomainId"nullable = false)    
  78.  
  79. public String getDomainId() {    
  80.  
  81. return DomainId;    
  82.  
  83. }    
  84.  
  85. public void setDomainId(String domainId) {    
  86.  
  87. DomainId = domainId;    
  88.  
  89. }    
  90.  
  91. public void Print_Info(){    
  92.  
  93. System.out.println(this.getDomainId()+this.getLastTransId()+this.getPrefix()+this.getTableName());    
  94.  
  95. }    
  96.  
  97. }   

 

關于SQL Server數據庫復合主鍵的設置就介紹到這里,希望能夠對您有所收獲!

【編輯推薦】

  1. 用mysqldumpslow分析執行較慢的SQL語句
  2. 一些很實用的Oracle數據庫優化策略總結篇
  3. 使用MySQL Proxy告終讀寫離別的操作實例
  4. 在SQL觸發器或存儲過程中獲取登錄用戶信息
  5. 局域網所有機器都能連接MySQL數據庫的設置命令
責任編輯:趙鵬 來源: CSDN博客
相關推薦

2011-03-28 14:29:46

SQL Server數主鍵列

2011-08-03 10:04:57

SQL Server數沒有主鍵的表

2011-08-01 09:50:31

SQL Server數主鍵索引

2010-10-21 14:54:32

查詢SQL Serve

2012-02-03 10:07:04

HibernateJava

2010-10-19 17:21:35

SQL SERVER主

2010-09-25 10:05:25

sql server主

2010-09-25 09:45:46

sql server主

2010-10-20 10:19:33

sql server刪

2011-05-12 13:34:57

SQL Server

2010-09-25 09:55:14

sql server主

2011-04-13 14:20:52

SQL Server主鍵

2010-07-05 15:12:30

SQL Server主

2010-10-19 17:34:10

sql server主

2010-10-20 10:31:57

sql server聯

2009-06-01 12:11:31

hibernatejpa復合主鍵

2010-06-02 11:24:57

MySQL數據庫主鍵

2019-08-29 07:13:50

oracle數據庫主鍵

2010-10-26 15:54:02

連接oracle數據庫

2010-09-01 16:44:26

SQL刪除主鍵
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美一区成人 | 久久大陆| 国产成人福利在线观看 | 北条麻妃视频在线观看 | 国产婷婷色综合av蜜臀av | 91高清免费观看 | 中文字幕91av | 国产在线观看一区二区 | 91精品久久 | 欧美国产日韩成人 | 国产精品1区 | 秋霞a级毛片在线看 | 欧美激情在线一区二区三区 | 国产成人精品一区二区三区在线 | 538在线精品| 亚洲免费一区二区 | 国产98色在线 | 日韩 | 免费欧美 | 久草热播| 国产探花在线精品一区二区 | 手机在线不卡av | 国产精品久久久久久久久久久久久 | 精品亚洲二区 | 婷婷丁香在线视频 | 日韩av一区二区在线 | 日韩一二三区 | 亚洲成人自拍 | 在线一区 | 网址黄 | 久久最新 | 99视频| 成人精品高清 | 国产欧美在线 | 久久精品国产久精国产 | 成人黄色av网址 | 国产精品中文字幕在线播放 | 欧美精品欧美精品系列 | 国产精品1区2区 | 天天躁人人躁人人躁狂躁 | 特级生活片 | 久久精品亚洲精品国产欧美kt∨ |