一个函数可以有两个数据库连接吗?

时间:2015-08-14 17:10:05

标签: java sql

当我调试时,我收到此错误:

  

列' place1'没找到。

我能够验证它在sql中有列place1。

是因为我在一个函数中不能有两个数据库连接吗?我不确定如何进一步调试问题。

Case.java

logger.info('About to fetch Regions');
ec2.describeRegionsPromised({}).then(function (data) {
  var addressesPromises = [];

  logger.info('Fetched Regions');
  logger.info(data);

  _.forEach(data.Regions, function (region) {
    var ec2Addresses = _.create(ec2, {region: region.RegionName});

    addressesPromises.push(ec2Addresses.describeAddressesPromised());
  });

  logger.info('About to fetch addresses per region');

  return Promise.all(addressesPromises);
}).then(function (data) {
  logger.info('Fetched addresses per region');
  logger.debug(data);
}).catch(function (err) {
  logger.error('There was an error when fetching regions and addresses');
  logger.error(err);
});

2 个答案:

答案 0 :(得分:2)

跟踪您的代码,了解您获取数据的位置。错误在这一行:

String aaa=rs1.getString("place1");

rs1来自哪里?:

ResultSet rs1 = ps.executeQuery();

ps来自哪里?:

PreparedStatement  ps = conn.prepareStatement(sql);

sql来自哪里?:

String sql ="Select Day from menu where ID =?";

没有选择名为place1的列。此查询仅选择名为Day的单个列。

也许你打算从第二份准备好的声明中得到结果?:

ResultSet rs1 = ps1.executeQuery();

可能更多此类错误。也许有几个(或许多)更多。因为...

提示:使用有意义的变量名将使您的代码更多更容易理解。 psps1rs1等很容易混淆。通过它们在概念上代表的东西命名变量,并且您的代码开始像可以遵循的故事一样阅读。像daysQuerydaysResults以及placesResults这样的变量名称可以让您在尝试查找"地点时更加明显出错。在代表"天"。

的变量中

答案 1 :(得分:1)

在第二个查询中:

PreparedStatement  ps1 = conn.prepareStatement(sql);

您不小心使用变量 sql 而不是之前定义的 sql1 。更换它就可以了。