gpt4 book ai didi

java - 从一对一关系的连接表中选择数据

转载 作者:行者123 更新时间:2023-11-29 16:43:07 24 4
gpt4 key购买 nike

我有一个类 Dresser,它扩展了抽象类 Furniture。

这是家具类。

public abstract class Furniture {

private String furnishing;
private String board;
private String wood;
private double mass;
private int price;
private int shippingPrice;

}

这就是 Dresser 类。

public final class Dresser extends Furniture {

private int width;
private int length;
private int height;
private int drawers;

}

继承在表中表示如下:

CREATE TABLE furnitures (
index INTEGER NOT NULL AUTO_INCREMENT,
furnishing VARCHAR(255) NOT NULL,
board VARCHAR(255) NOT NULL,
wood VARCHAR(255) NOT NULL,
mass FLOAT(5,2) NOT NULL,
price INTEGER NOT NULL,
shipping_price INTEGER NOT NULL,
PRIMARY KEY (index)
)

CREATE TABLE IF NOT EXISTS dressers (
index INTEGER NOT NULL,
width INTEGER NOT NULL,
length INTEGER NOT NULL,
height INTEGER NOT NULL,
drawers INTEGER NOT NULL,
PRIMARY KEY (index),
FOREIGN KEY (index) REFERENCES furniture (index)
)

我需要构建一个查询,允许我选择一条记录或从表中选择所有记录,但到目前为止我已经想出了这个,但我不知道这是否一定是最好的方法。

String query =
"SELECT furniture.board, furniture.wood, furniture.mass, " +
"furniture.price, furniture.shipping_price, " +
"dresser.width, dresser.length, dresser.height, dresser.drawers " +
"FROM furniture, dresser " +
"WHERE " +
"furniture.index = dresser.index";

这将是我选择所有记录的查询(可以安全地忽略装饰字段)。

如何改进?另外,我如何进行查询以在给定特定索引的情况下选择特定记录或如何更新记录?

PD:我正在使用 MySQL。

最佳答案

要仅选择特定的梳妆台,请使用

String query =
"SELECT f.board, f.wood, f.mass, f.price, f.shipping_price,
d.width, d.length, d.height, d.drawers
FROM furniture f
JOIN dresser d ON f.index = d.index
WHERE f.index = @index"

这里@index是你想要的梳妆台的索引(参见https://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-parameters.html)。

关于java - 从一对一关系的连接表中选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53244365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com