Java及数据库相关问题

daikeyang 2009-11-16 06:16:40
大家好,我最近做一个作业,已经想了好久,在网上也查了好久,依然是一点头绪都没有,希望大家可以帮帮忙。要求如下:

设计一个程序使得它能产生如下SQL产生的结果:
Select O.Orderdate, AVG(P.SupplyCost * P.AvailQty)
From LineItem L, Orders O, PartSupp P
Where L.OrderKey = O.OrderKey And P.PartKey = L.PartKey And P.SuppKey=L.SuppKey
Group By O.OrderData
Having Avg(P.SupplyCost * P.AvailQty) < param1

(param1是一个参数,在Runtime时提供; 程序用C++,Java或C编写)

请问各位高手,这个问题到底要怎么下手,我一点想法都没有,很急,希望大家帮帮忙,救救急!

先谢谢大家了
...全文
71 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
老张-AI 2009-11-18
  • 打赏
  • 举报
回复

运行下2楼代码 稍微改一点就好了啊
sangshusen_1988 2009-11-18
  • 打赏
  • 举报
回复
不查询数据库那你数据从哪儿来呀
想不起来了 2009-11-18
  • 打赏
  • 举报
回复
问题似乎不太清晰
wuguowei1314 2009-11-18
  • 打赏
  • 举报
回复
你所说的程序,不能用sql语句吗?还是把这个sql分开写
daikeyang 2009-11-17
  • 打赏
  • 举报
回复
谢谢closewbq的回答,但不是这样的。

是要自己用Java代码从一个数据表中取出数据,通过判断键值是否相同来自己合并每一行数据。编的程序的运行结果要和上面的SQL执行结果一样。

你其实还是使用了DBMS的SQL语句,在我的作业里不可以有这样写。

不过谢谢你的回答,你还有什么想法吗?
heyi10012 2009-11-16
  • 打赏
  • 举报
回复
差不多就和2楼的了。
closewbq 2009-11-16
  • 打赏
  • 举报
回复

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class OracleOperating{
private final static String DB_URL = "jdbc:oracle:thin:@你的ID:1521:数据库名称";
private final static String DB_DRIVER = "oracle.jdbc.driver.OracleDriver";
private final static String DB_USERNAME = "你的用户名";
private final static String DB_PASSWORD = "你的密码";
public Connection getConnection(){
Connection conn = null;
try{
Class.forName(DB_DRIVER);
conn = DriverManager.getConnection(DB_URL,DB_USERNAME,DB_PASSWORD);
}catch(Exception ex){
ex.printStackTrace();
}
return conn;
}

public void closeConnection(Connection conn){
try{
if(conn!=null){
if(!conn.isClosed()){
conn.close();
}
}
}catch(Exception ex){
ex.printStackTrace();
}
}

public void select(String param) throws SQLException{
Connection conn=getConnection();
String sql="Select O.Orderdate, AVG(P.SupplyCost * P.AvailQty) " +
"From LineItem L, Orders O, PartSupp P " +
"Where L.OrderKey = O.OrderKey And P.PartKey = L.PartKey " +
"And P.SuppKey=L.SuppKey Group By O.OrderData " +
"Having Avg(P.SupplyCost * P.AvailQty) <?";
PreparedStatement pstat=conn.prepareStatement(sql);
pstat.setString(1, param);
ResultSet rs=pstat.executeQuery();
while(rs.next()){
//进行遍历
}
rs.close();
closeConnection(conn);
}

}
JavaAlpha 2009-11-16
  • 打赏
  • 举报
回复
你的程序就是为了实现你的这个查询功能吗?

51,408

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧