0

1 つの問題があります。

現在、文字列値を整数に変換しようとしています。この場合、文字列値は、データ型が varchar(500) latin1_swedish_ci であるデータベースからのものです。

データベースから値を抽出した後、整数値としてさらに処理を行うため、整数に変換したいと考えています。

以下は私のコードです。

String order_number="";
    DbEngine db = new DbEngine();
    String select_max_order_id = " SELECT MAX( orderid ) AS orderid FROM `orders` ";
    try{
        Connection con = db.getConnection();
        con.setAutoCommit(false);

        PreparedStatement prp_select = con.prepareStatement(select_max_order_id);

        ResultSet rs = prp_select.executeQuery();

        while(rs.next()){
            order_number=rs.getString("orderid");
            int order_no = Integer.parseInt("order_number");
            order_no+=1;
            order_number = Integer.toString(order_no);
        }
        con.commit();
        con.close();
    }
    catch( SQLException ex ) {
        System.out.println("Error"+ex.getSQLState());
    } 
    catch( ClassNotFoundException ex ) {
        System.out.println("Error"+ex.getException());
    } 
    catch( NumberFormatException  ex ) {
        System.out.println("Parsing Error"+ex.getStackTrace());
    }

問題は、order_number が文字列値に解析されるときに、NumberFormatException がスローされることです。これはサーバーからのスタック トレースです。[Ljava.lang.StackTraceElement;@257f04

ただし、 int order_no = Integer.parseInt("10"); のような正確な文字列値を渡すと、

誰かがそれを解決する方法を教えてもらえますか?

ありがとう

4

5 に答える 5

1

試す:

Integer.parseInt(order_number);

ここは変数にする必要があります。

于 2013-07-26T06:08:32.953 に答える
1
int order_no = Integer.parseInt("order_number");

上記のステートメントを言うとき、文字列「order_number」が整数であることを意味し、それを取得します(そうではありません)。order_number という名前の文字列にデータを保存しています。したがって、整数を取得するには、次のことを行う必要があります-

int order_no = Integer.parseInt(order_number);
于 2013-07-26T06:12:48.097 に答える
0

男の問題は、文字列値を int に変換しようとしていることですが、これは不可能です。事はここから始まる

あなたのコードはここです order_number=rs.getString("orderid"); int order_no = Integer.parseInt("order_number"); order_number 変数は文字列で、int に変換しています。あなたができることは、文字列 select_max_order_id を int ではなく int にすることであり、病棟では変換は必要ありません。

于 2013-07-26T06:23:56.317 に答える