【问题标题】:get column values into an array将列值放入数组
【发布时间】:2018-03-19 12:33:50
【问题描述】:

我有一个包含以下列的数据库表:姓名、住所、联系方式。我只想将“联系人列”中的值检索到数组中。以下代码是我写的:

List l = new ArrayList();
try {
    String sql = "select * from members";
    pst = conn.prepareStatement(sql);
    rs = pst.executeQuery();
    while (rs.next()) {
        String con = rs.getString("Contact");
        l.add(con);
        System.out.println(l);
    }
} catch (Exception e) {
    e.getMessage();
}

但这会产生以下结果:

[0547615632]
[0547615632, 0246687643]
[0547615632, 0246687643, 0558581764]

虽然我在表中只有 3 条记录,并且每条记录都有一个联系人值。
请问我该如何编写代码,以便我只能得到一个显示结果的数组,如下所示:

[0547615632, 0246687643, 0558581764]

非常感谢。

【问题讨论】:

  • 将查询更改为Select contact from members
  • 我做到了兄弟,但我仍然得到相同的 3 个数组。
  • 因为您在每次迭代时都会打印 array。要么在仅打印当前元素的循环之后打印数组。如下答案所示

标签: java sql sqlite


【解决方案1】:

您应该将打印命令移出 while 循环:

List l = new ArrayList();
try {
    String sql = "select * from members";
    pst = conn.prepareStatement(sql);
    rs = pst.executeQuery();
    while (rs.next()) {
        String con = rs.getString("Contact");
        l.add(con);
    }
} catch (Exception e) {
    e.getMessage();
}
System.out.println(l);

每次迭代只打印当前元素;

List l = new ArrayList();
try {
    String sql = "select * from members";
    pst = conn.prepareStatement(sql);
    rs = pst.executeQuery();
    while (rs.next()) {
        String con = rs.getString("Contact");
        l.add(con);
        System.out.print(con + " ");
    }
} catch (Exception e) {
    e.getMessage();
}

【讨论】:

  • 非常感谢@Emre Acer,它运行良好。谢谢大家
  • 兄弟请指导我..我在堆栈溢出中很新。请问我要去哪里,我必须点击什么链接才能接受你的回答@EmreAcer
  • 我搜索了它,兄弟。我认为我没有获得接受答案的特权。因为我没有看到任何可供我这样做的选项。你在脸书上吗
  • @RodneyNart 它不需要特权,但没关系,我的朋友。我很高兴我解决了你的问题。祝你好运!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-19
  • 2015-03-08
  • 2014-02-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多