【问题标题】:How to convert resultset into int for query如何将结果集转换为 int 以进行查询
【发布时间】:2013-04-13 06:27:55
【问题描述】:

我正在从“第一个表”中获取数据并将其存储到结果集中。现在我想将获取的数据插入“第二个表”

问题是“第二个表”只接受 int 值。

我试过了:

while (rs.next()) 
    {
        int g = rs.getInt(1);
    }

    int g = Integer.parseInt(rs);

但它给我错误java.lang.NumberFormatException 输入字符串:"com.mysql.jdbc.ResultSet@39badcaa"

【问题讨论】:

    标签: java


    【解决方案1】:

    您的结果集返回一个无法转换为整数的字符串

    试试这个:

     while (rs.next()) {
        String str = rs.getString("COLUMN_NAME");
            int g = Integer.parseInt(str);
        }
    

    现在像插入数据库一样

    insert into mytable (myintfield)values(g);
    

    请检查 str 没有返回空字符串值。

    如果 str 值为例如“SE”,则不会转换。请先打印出返回的Value,确认是String格式的数字;

    如果返回的值例如是“2”

    做吧

    int myint = Integer.parseInt(str);
    

    【讨论】:

    • 它正在返回整数值。
    • 如果返回整数值int myint = Integer.parseInt(str);应该能够转换成整数然后将值插入数据库;例如insert into mytable(myintfield)values(myint)
    • 请检查它没有返回空字符串
    • 请查看我的更新答案
    • 请发布您的代码以便我们查看它也许问题出在其他地方。
    【解决方案2】:

    Integer.parseInt(rs.getString(1));

    String sql1="SELECT Id FROM kiosk_manager WHERE Kiosk_Centre='"+Uareacode+"'";
    stmt1=con.createStatement(); 
    rs=stmt1.executeQuery(sql1);
    int parseInt = 0;
    while (rs.next()) { parseInt=Integer.parseInt(rs.getString(1)); }
    sql="INSERT INTO consumer(KioskManager_Id)VALUES("+parseInt+")"
    

    【讨论】:

    • String sql1 = "SELECT Id FROM kiosk_manager WHERE Kiosk_Centre = '" +Uareacode+ "'";
    • while (rs.next()) { int parseInt = Integer.parseInt(rs.getString(1)); }
    • sql = "插入消费者 (KioskManager_Id) VALUES('" +parseInt+ "')";
    • 但它无法识别第二个表中的变量 parseint
    猜你喜欢
    • 2012-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    • 2012-10-12
    • 2011-06-26
    相关资源
    最近更新 更多