繁体   English   中英

如何将结果集连接到字符串变量

[英]How to concatenate Resultset to String variable

我想将我的ItemName列值设置为一个与逗号分开的字符串。

我试过这样,但是不起作用

        String sql = "SELECT `ItemName` FROM `invoicelist` WHERE `InvoiceId` = '"+invoicenum+"' ";
        try {
        ResultSet rs =   CODE.DbAccess.getdata(sql);


        while (rs.next()) {
        String em =  rs.getString("ItemName");

         description = em.replace("\n", ",");
         System.out.println(description);  


        }

如果要在java中进行串联,则应更改为:

String sql = "SELECT `ItemName` FROM `invoicelist` WHERE `InvoiceId` = '" + invoicenum + "' ";
try { 
    ResultSet rs =   CODE.DbAccess.getdata(sql);

    while (rs.next()) {
        description += rs.getString("ItemName") + ",";
    } 

    description = description.substring(0, description.length() - 1);

    //System.out.println(description);  
}

如果要在查询中进行串联,则可以搜索GROUP_CONCAT() function

String sql = "SELECT `ItemName` FROM `invoicelist` WHERE `InvoiceId` = '" + invoicenum + "' ";
try { 
    ResultSet rs =   CODE.DbAccess.getdata(sql);
    StringBuilder builder = new StringBuilder(); // used to store string and append data further if you want
    while (rs.next()) {
        builder.append(rs.getString("ItemName").append(","); // adding data/Item name to builder and appending comma after adding item name
    } 
    if(builder.length() > 0){ // if there's some data inside builder
        builder.setLength(builder.length() - 1); // remove last appended comma from builder
    }
    System.out.println("Command Separated Data" + builder.toString()); // final data of item name
}

另一种方法是从SQL本身连接结果。(这是MySQL兼容的代码)

String sql = "SELECT group_concat(`ItemName`) as items FROM `invoicelist` WHERE `InvoiceId` = '" + invoicenum + "' ";
try { 
    ResultSet rs =   CODE.DbAccess.getdata(sql);
    String data = "";
    while (rs.next()) {
        data = rs.getString("items")
    } 
    System.out.println("Command Separated Data" + data); 
}

暂无
暂无

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

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