2011-06-12 64 views
0

这些表包含关于存储在dierent仓库 位置的各种机械配件的信息:编写Java方法使用mysql

CREATE TABLE part (
pid: integer, 
description: varchar(128), 
PRIMARY KEY (pid) 
) Engine = InnoDB; 

CREATE TABLE warehouse (
wid: integer, 
address: varchar(128), 
PRIMARY KEY (wid) 
) Engine = InnoDB; 

CREATE TABLE stock (
pid: INTEGER, 
wid: INTEGER, 
quantity: INTEGER, 
unitcost: FLOAT 
FOREIGN KEY (pid) REFERENCES part (pid), 
FOREIGN KEY (wid) REFERENCES warehouse (wid) 
) Engine = InnoDB; 

该股表显示目前在特定的仓库内物品的数量,并 的如果要从仓库交付每件商品的成本。例如,假设 该表包含以下行:

     pid wid quantity unitcost 
         1 1 10  23.50 
         1 2 15  22.95 
         1 3  7  22.00 

这表明仓库1有10个单位的第1部分的股票,每个人花费23.50 $, 而仓库2在15件库存每个22.95 $,等成本“

假设您经常需要回答的形式的问题:?

  • 什么是23台第1部分的顺序最便宜的总成本”
  • 单位数量和部件ID从查询变为查询。

在这种情况下提供这种顺序是购买股票的所有7个项目在仓库3的最便宜的方式,所有15个从仓库2和从仓库1处的 7月22日,总成本仅有1项: 00 + 15 22:95 + 1 23时50 = 521:75

我的问题是写一个Java方法:

public double totalCost(int pid, int numItems) 

,计算供给的一部分单位specied数目的最便宜的总成本 与id pid。您可以假定该方法可以访问变量conn,该变量将 引用到已创建的java.sql.Connection中。

Java方法可能不调用以下问题

+0

如果它是作业,请标记为这样。 – MByD 2011-06-12 04:12:59

+0

@MByD为什么它是重要的,如果它是一个功课问题? – bumperbox 2011-06-12 04:21:23

+0

@bumperbox - 因为它会让人们给出一个合适的答案(不要忽略学习过程) – MByD 2011-06-12 04:46:22

回答

0

的存储过程,因为这听起来像功课,我会在一门功课适当的方式回答。

请查看关于您正在讨论的课程的文档:java.sql.Connection

正如你所看到的,它有几个方法可以用来创建一个java.sql.Statement。使用Statement您应该可以针对数据库运行任意SQL。这可能是你想要看的地方。

祝你好运!