Java JDBC在表中插入数据后获取字符串主键值

时间:2018-02-12 09:31:41

标签: java jdbc

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主键的主键。非常感谢您的帮助,谢谢!

1 个答案:

答案 0 :(得分:2)

试试这个..

[]

您可以使用列名称代替PreparedStatement ps = con.prepareStatement(insertsql, Statement.RETURN_GENERATED_KEYS)

Statement.RETURN_GENERATED_KEYS

希望这可以解决您的问题。

相关问题