[英]Auto Increment ID field both in Java and mySQL DB?
如果 java object 有一個自動增量 ID 字段,數據庫表字段也應該是自動增量的嗎?
例如
public class Company {
private static int countID = 0;
private int companyID;
private String name;
private String email;
private String password;
private List<Coupon> couponsList;
public Company(int companyID, String name, String email, String password, List<Coupon> couponsList) {
this.companyID = companyID+=1;
this.name = name;
this.email = email;
this.password = password;
this.couponsList = couponsList;
}
可以看到 companyID 字段是自動生成的。
我在我的 SQL 服務器中創建了這個表
CREATE TABLE `companies` (
`ID` int NOT NULL AUTO_INCREMENT,
`NAME` varchar(200) DEFAULT NULL,
`EMAIL` varchar(200) DEFAULT NULL,
`PASSWORD` varchar(200) DEFAULT NULL,
PRIMARY KEY (`ID`)
我應該如何將 Java 字段(commpanID)連接到 sql 字段(ID)?
不,它們是不同的東西。 MySQL 中的自動增量列不保證無間隙。 出現差距可能有多種原因。 最常見的是:
聽起來您在 Java 中有一個唯一標識符,它要么是冗余的,要么是數據項。 如果是后者,則將其添加為附加列。
不過,更有可能的是,您可能想要重新考慮您的設計,因此給定記錄只有一個自動遞增的值。 我建議在數據庫中使用它,因為無論插入到數據庫中的方式如何,它都適用。
在數據庫中創建唯一的 id 字段不是強制性的。 您可以改為更改表格-->
CREATE TABLE companies (
'COMPANYID' int NOT NULL,
`NAME` varchar(200) DEFAULT NULL,
`EMAIL` varchar(200) DEFAULT NULL,
`PASSWORD` varchar(200) DEFAULT NULL,
PRIMARY KEY (`ID`)
由於您自動增加相同的值兩次,因此會產生一些問題。 您的 ID 列將是這樣的-->
Id|
---
2 |
---
4 |
--
6 |
--
8 |
它會將值增加兩次
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.