JDBC问题:如何得到一个联查结果?

awers 2005-01-01 10:20:46
例如我有2个表,SQL的查询语句如下(在查询分析器里执行无误)
String sqlSearch="select a.categoryID,a.categoryName,b.freightName
from categoryTable as a,freightTable as b
where a.categoryID='"+userInputNumber+"'";

在方法里,我的userInputNumber是获取用户输入的数值
我在编译时是正确的,但运行时,总是在获得ResultSet时抛SQL异常~~
Statement stmt = conn.createStatement();
Result rst = stmt.executeQuery(sqlSearch);

while(rst.next()){
Category category = new Category();//Category.java是放set && get的类,对应categoryTable
Freight freight = new Freight();//Freight.java同上,对应的是freightTable

category.setCategoryID(rst.getInt("a.categoryID"));//从这里抛的SQL异常
category.setCategoryName(rst.getString("a.categoryName"));
freight.setFreightName(rst.getString("b.freightName"));
}

用什么方法才能获取象这样的虚拟列名的返回结果呢……?
先谢过大家了
...全文
79 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
awers 2005-01-01
  • 打赏
  • 举报
回复
谢谢,可以了!!
darkula 2005-01-01
  • 打赏
  • 举报
回复
rst.getInt(1);
rst.getString(2);
......

如果你前面的SQL语句,不是SELECT * 就直接获取列的数字就可以了
awers 2005-01-01
  • 打赏
  • 举报
回复
抱歉我写错了,
应该是ResultSet的,我程序里是正确的,问题不是出在这里,报异常的行是:
category.setCategoryID(rst.getInt("a.categoryID"));//从这里抛的SQL异常
applet_bg 2005-01-01
  • 打赏
  • 举报
回复
这个好像不对吧,Result rst = stmt.executeQuery(sqlSearch);
Result 改为ResultSet
awers 2005-01-01
  • 打赏
  • 举报
回复
不是ORACLE~~用的是MS SQL SERVER2000~~直接用列名也运行不过去~~~写成表名.列名:
categoryTable.categoryID也还是不行……
tssungeng 2005-01-01
  • 打赏
  • 举报
回复
好像不用写a 、b吧?反正在oracle里面直接写大写的列名就可以了。
你尝试直接写列名看看?
如果是oracle就要用大写的列名!

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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