BookTable
isbn VARCHAR(25) NOT NULL PRIMARY KEY,
bookTitle VARCHAR(150) NOT NULL,
publisher VARCHAR (200) NOT NULL,
copyRight BLOB(45) NOT NULL,
isBookAvailable TINYINT(0) NOT NULL
UNIQUE(isbn)
AuthorTable
authorId INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
firtName VARCHAR(200) NOT NULL,
lastName VARCHAR(200) NOT NULL
AuthorBooTable
authorIsbnId INT NOT NULL AUTO_INCREMENT,
isbn INT NOT NULL,
authorId INT NOT NULL,
PRIMARY KEY ( authorIsbnId ),
FOREIGN KEY (isbn) REFERENCES BookTable (isbn) ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (authorId) REFERENCES AuthorTable (authorId) ON DELETE CASCADE ON UPDATE CASCADE
到目前为止,我知道如何使用Statement.RETURN_GENERATED_KEYS
获取authorId,因为author表的键是通过“AUTO_INCREMENT”自动生成的。我需要来自authorTable的authorId和来自BookTable的isbn的两个主键,这样我才能在将数据保存到数据库之前在AuthorBookTable中创建关系。我的问题是,如何从BookTable获取isbn数字,因为它是一个字符串而不是“AUTO_INCREMENTED”?我试过调用Statement.RETURN_GENERATED_KEYS
但是没有返回Book isbn主键的主键。非常感谢您的帮助,谢谢!
答案 0 :(得分:2)
试试这个..
[]
您可以使用列名称代替PreparedStatement ps = con.prepareStatement(insertsql, Statement.RETURN_GENERATED_KEYS)
:
Statement.RETURN_GENERATED_KEYS
希望这可以解决您的问题。