java - 尝试从文本文件读取 jdbc 程序的参数但出现数字格式异常?

标签 java mysql sql jdbc

package com.first;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import com.mysql.jdbc.Driver;

public class Preparedtatementexm3 {

public static void main(String[] args)
{

    Connection con=null;
    PreparedStatement pstmt=null;
    /*
     * 1.load the driver
     * driver class :com.mysql.jdbc.Driver

     */

    try {
        Driver driverref=new Driver();
        DriverManager.registerDriver(driverref);
        /*
         * 2.get db connection via driver
         */
        String DbUrl="jdbc:mysql://localhost:3306/college?    
                     user=suhas&password=j2ee";
        con=DriverManager.getConnection(DbUrl);
        /*
         * 3.issue SQL queries via Connection
         */
        String query="insert into students_info values(?,?,?,?)";
        pstmt=con.prepareStatement(query);
        String fileloc="C:\\Users\\SUHAS B K GOWDA\\Desktop\\New Text  
                    Document (2).txt";  
        FileReader reader=new FileReader(fileloc);
        BufferedReader br=new BufferedReader(reader);
        String linedata=null;
        while((linedata=br.readLine())!=null){
            String[] data=linedata.split(" ");
            pstmt.setInt(1,Integer.parseInt(data[0]));
            pstmt.setString(2,data[1]);
            pstmt.setString(3,data[2]);
            pstmt.setString(4, data[3]);
            int count=pstmt.executeUpdate();
            System.out.println("no of rows affected count "+count);
        }

        /*
         * 4.process the results returned by sql query
         */
        /*while(rs.next()){
            int dbregno=rs.getInt("regno");
            String fname=rs.getString("firstname");
            String mname=rs.getString("middlename");
            String lname=rs.getString("lastname");
            System.out.println("regno "+dbregno);
            System.out.println("first name "+fname );
            System.out.println("middlename "+mname);
            System.out.println("lastname "+lname);
            }//end of while
            */

    }
    catch (SQLException e) 
    {
        e.printStackTrace();
    } catch (FileNotFoundException e) {

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

        e.printStackTrace();
    }
    finally
    {
        /*
         * close all jdbc objects
         */
        try {
            if(con!=null){
                con.close();

            }
            if(pstmt!=null){
                pstmt.close();
            }

        } catch (SQLException e) {

            e.printStackTrace();
        }
     }
    }
    }

即使它返回输出,异常也被打印出来,为什么这样??? 控制台显示 受影响的行数计数 1 在 java.lang.NumberFormatException.forInputString(来源未知) 在 java.lang.Integer.parseInt(来源未知) 在 java.lang.Integer.parseInt(来源未知) 在 com.first.Preparedtatementexm3.main(Preparedtatementexm3.java:46)

最佳答案

pstmt.setInt(1,Integer.parseInt(data[0])); 行导致了异常。

data[0] 的内容不是有效数字。您最好调试或打印 data[0] 中存在的值。另一种可能性是 data[0] 可能有空间,在这种情况下尝试 Integer.parseInt(data[0].trim())

关于java - 尝试从文本文件读取 jdbc 程序的参数但出现数字格式异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20472207/

相关文章:

java - 如何在 Recyclerview 中单击按钮调用电话

java - JPA:默认构造函数是否需要为空?

php - 使用php pdo向数据库中插入记录

mysql - 列中包含附加结果的 GROUP BY 语句

mysql - 如何使用表数据调用存储过程?

java - 带有破折号/连字符的模式名称 i HyperSQL

java - 如何在不使用循环的情况下复制集合?

php - Ajax MYSQL 搜索和排序结果

MySQL 搜索关键字

mysql - SQL 存储例程