java - 在表中添加带有链接的新条目

标签 java mysql sql

我买了 deitel java 如何编程这本书。我正在遵循他们的一项练习。 在我的程序中,我连接到 mysql 图书数据库。我能够添加新作者、编辑作者、新标题。然而,d) 部分让我感到困惑。我是否应该更改表并添加外键?

这是书中的练习,您可以查看 d) 部分

a) Add a new Author
b) Edit the existing information for an author
c) Add a new title for an author (Remember that the book must have entry in the AuthorISBN table.)
d) Add a new entry in the authorISBN table to link authors with titles.

这是在“toad”中打开的数据库的屏幕截图

enter image description here

如果他们打算编写一条 sql 语句,我会添加一个新的 AuthorID 并引用标题吗?

ALTER TABLE AuthorISBN ADD FOREIGN KEY (AuthorID) REFERENCES title (AuthorID);

最佳答案

您不应该更改该表。我假设他们已经为您提供了表格的结构(屏幕截图),并且您应该在练习的所有部分中添加新条目。在 d) 中,他们希望您向 AuthorISBN 表添加一个条目,以便 AuthorTitle 中的两个条目逻辑连接。

AuthorISBN 由两个数据字段组成。 AuthorID 和 ISBN 是外键,因此对于 AuthorISBN 表中的每个条目,Authors 表中必须有一个具有相同 AuthorID 的足够条目,并且在 Titles 表中必须有一个具有相同 ISBN 的条目。

因此,在 a) 中您添加了一位作者。 AuthorID 会自动递增,因此您必须在插入作者后检索 ID。在 c) 中,您添加该作者的一本书。但后来你怎么知道哪位作者写了一本特定的书呢?或者您想检索作者的所有书籍的列表。这就是您在 d) 中添加 AuthorISBN 条目的原因。

所以JDBC你会做这样的事情:

Statement stmt = connection.createStatement();
String sql = "INSERT INTO AuthorISBN VALUES (" + authorID + ", '" + isbn + "')";
stmt.executeUpdate(sql);

关于java - 在表中添加带有链接的新条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21974228/

相关文章:

java - 迁移到 Androidx 后无法解析方法 setAdapter

java - 在#{select}标签属性中使用变量

mysql - 选择除第一行之外的所有行

mysql - 如何将重复列转换为单行?

sql - 我真的需要在存储过程中使用事务吗? [MSSQL 2005]

java - 在 PDFBox 中使用框生成字符 (utf-8)

java - 在我的例子中是否值得创建一个数据访问层?

mysql - sql中的数据库时间戳

php - 在数据库中保存 HTML - htmlentities

mysql - 按从多个表收集的日期对行进行排序?