简体   繁体   English

Java mysql存储过程的下一个结果

[英]Java mysql next result from stored procedure

I have following stored procedure: 我有以下存储过程:

CREATE DEFINER=`root`@`localhost` PROCEDURE `blast10`()
BEGIN
SELECT concat("ROUND ",draws.izvlacenje_id,": ", draws.1,",",draws.2,",",draws.3,",",draws.4,",",draws.5,",",draws.6,",",draws.7,",",draws.8,",",draws.9,",",draws.10,",",draws.11,",",draws.12,",",draws.13,",",draws.14,",\n",draws.15,",",draws.16,",",draws.17,",",draws.18,",",draws.19,",",draws.20,",",
draws.21,",",draws.22,",",draws.23,",",draws.24,",",draws.25,",",draws.26,",",draws.27,",",draws.28,",",draws.29,",",draws.30,",",draws.31,",",draws.32,",",draws.33,",",draws.34,",",draws.35,"")
rzlt from macau.draws order by iddraws desc limit 10;
END`

This procedure returns 10 rows of data and i want to send that data through TCP/IP communication, this is what i achieved by now: 此过程返回10行数据,我想通过TCP / IP通信发送该数据,这是我现在所实现的:

public void blastTen() throws SQLException {
    String blastTen = "";
    String bl10 = "LAST 10 RESULTS";
    try {
        Statement st = Conex.conn.createStatement();
        String SQLEdit = "{ call blast10() }";
        ResultSet rs = st.executeQuery(SQLEdit);
        while (rs.next()) {
            blastTen = bl10 + "\n" + rs.getString("rzlt") + "\n";
        }
        os.println(blastTen + "\n");
    }
    catch (Exception e2) {
        System.out.println(e2);
    }
}

The problem is I can send only one row and can't seem to get the other rows. 问题是我只能发送一行,而似乎无法发送其他行。

Any help is appreciated 任何帮助表示赞赏

The code 编码

while (rs.next())
{
    blastTen=bl10+"\n"+rs.getString("rzlt")+"\n";
}

won't assign anything to bl10 so you'll always only get the latest row... Try 不会为bl10分配任何内容,因此您始终只会获得最新的行...尝试

   ...
   bl10 = bl10 + "\n" + rs.getString( "rzlt" );
}
os.println( bl10 );

instead. 代替。

Cheers, 干杯,

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM