当前位置: 首页 > 面试题库 >

JDBC ResultSet仅给出一行,尽管表中有很多行?

孙朗
2023-03-14
问题内容

我表中有很多行,并且我在数据库上运行了相同的查询,即MySql,但是java ResultSet仅给出了表的第一行。这是我的代码。

public ArrayList<String> getAllAlbumsName(Integer uid) {
    ArrayList<String>allAlbumsName = new ArrayList<String>();
    try {
        String qstring = "SELECT albumname FROM picvik_picture_album WHERE " +
                "uid = '" + uid + "';";

        System.out.println(qstring);
        connection = com.picvik.util.MySqlConnection.getInstance().getConnection();
        ptmt = connection.prepareStatement(qstring);
        resultSet = ptmt.executeQuery();
        if(resultSet.next()) {
            System.out.println(resultSet.getString("albumname"));
            allAlbumsName.add(resultSet.getString("albumname"));
        }

        resultSet.close();
        ptmt.close();
        connection.close();


    } catch (Exception e) {
        e.printStackTrace();
    }   
    return allAlbumsName;
}

问题答案:
if(resultSet.next()) {
            System.out.println(resultSet.getString("albumname"));
            allAlbumsName.add(resultSet.getString("albumname"));
        }

如果要获取所有行,则应为:

while(resultSet.next()) {
        System.out.println(resultSet.getString("albumname"));
        allAlbumsName.add(resultSet.getString("albumname"));
    }

在而当特定的条件为真语句连续执行语句块

注意:正如@BalusC所说,您的代码会引入SQL注入攻击,最好使用ptmt.set …而不是手动构造SQL String。



 类似资料:
  • 我想用一个AJax请求填充一个表(DataTables 我的请求ajax返回Json,但不可能填满表,我有以下错误: DataTables警告:table ID=DT-Table-为第1行第0列请求未知参数“0”。有关此错误的详细信息,请参阅http://datatables.net/TN/4 我的桌子: 我的JS: ajax响应: 我的请求: 我看不出问题出在哪里,我查看了DataTables文

  • 从关系设计的角度来看,我有一个名为Request的表,其中包含客户更改请求列表。每个客户请求将与RequestStatus表具有1对1的关系。 这意味着每个请求只有一种状态类型:挂起、已分配、已完成。因此,1对1的关系。 在我的pojo代码中,这是我的请求文件: 然后,这是我的RequestStatus文件: } 从数据的角度来看,在Request表中,肯定会有重复RequestStatus的可能

  • 问题内容: 我怎样才能通过mysql仅在一行中加入多行? 例子 : 学生表 现在我想要这种格式 我不确定该怎么做?我应该创建视图还是表格? 我想一个观点会很好。 问题答案: 我同意其他答案,即与PHP一起使用逗号分隔的值进行拆分可能是最好的方法,但是,如果由于任何其他原因需要通过Pure SQL建议的输出,则建议使用以下方法之一。 1.自我加入 2.使用ROW_NUMBER类型函数进行汇总

  • 在某个时刻,我的应用程序开始创建许多临时阵列,这是预期的行为,我想给年轻一代提供大量空间,所以临时阵列不会被提升到终身一代。 JVM选项: 在某些时候,我的GC日志开始看起来像这样: 我非常困惑的事实,年轻一代的大小是629120K(=629M),而我预计它是约1/2(因为NewRatio=2)的终身一代大小这是158690816K(=158G)。终身大小生成对应于NewRatio和Xms的预期,

  • 问题内容: 我正在使用Hibernate并获得 线程“主”中的异常org.hibernate.ObjectNotFoundException:不存在具有给定标识符的行:[#271] 关于此错误,很奇怪的是,具有给定id的对象存在于数据库中。我在另一个应用程序运行中插入了有问题的记录。如果我在同一运行(即同一hibernate会话)中访问它,则检索数据似乎没有问题。 仅因为这可能是映射的错误: 我什

  • 当我运行kafka JDBC连接器到PSQL时,我收到以下错误: JSON converter with schemas . enable需要“schema”和“payload”字段,不能包含其他字段。如果试图反序列化普通JSON数据,请在转换器配置中设置schemas.enable=false。 但是,我的主题包含以下消息结构,并添加了一个架构,就像在线显示的那样: Rowtime: 2022/