**线程“ main”中的异常java.util.InputMismatchException ** [英] **Exception in thread "main" java.util.InputMismatchException**
本文介绍了**线程“ main”中的异常java.util.InputMismatchException **的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试从txt文件中获取一些记录,并将这些记录放在下面的Java程序中的数据库中
package Java_Demo;
import java.sql.*;
import java.util.*;
import java.io.*;
public class Jdbc_Demo {
public static void main(String ...args)throws ClassNotFoundException,SQLException,FileNotFoundException {
FileInputStream fin=new FileInputStream("C:/Users/steve-pc/Desktop/Employees.txt");
Scanner s=new Scanner(fin);
s.useDelimiter(",|\\n");
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@172.22.22.131:1521:orcl","Demo","demo");
while(s.hasNext())
{
PreparedStatement st=con.prepareStatement("Insert into Employee values(?,?,?)");
String name=s.next();
int id=s.nextInt();
int sal=s.nextInt();
st.setString(1,name);
st.setInt(2,id);
st.setInt(3,sal);
int result=st.executeUpdate();
System.out.println("Records Changed: "+ result);
}
con.close();
}
}
我从中获取数据的txt文件具有以下格式
Steve,12349,550000
Steve,12349,550000
Mark,54321,250000
Mark,54321,250000
Bill,65478,350000
Bill,65478,350000
此外,EMPLOYEE表还具有以下格式
姓名ID工资
Varachar2数字编号
Varachar2 Number Number
但是代码正在生成以下错误
线程 main中的异常java.util.InputMismatchException
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at Java_Demo.Jdbc_Demo.main(Jdbc_Demo.java:24)
推荐答案
进行如下更改:
public class ScannerTest {
public static void main(String ...args)throws ClassNotFoundException,SQLException,FileNotFoundException {
File f =new File("/home/rahul/Desktop/emp.txt");
Scanner s=new Scanner(f);
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@172.22.22.131:1521:orcl","Demo","demo");
while(s.hasNext())
{
PreparedStatement st=con.prepareStatement("Insert into Employee values(?,?,?)");
String rcd = s.next();
Scanner s1 = new Scanner(rcd);
s1.useDelimiter(",|\\n");
String name=s1.next();
int id=s1.nextInt();
int sal=s1.nextInt();
st.setString(1,name);
st.setInt(2,id);
st.setInt(3,sal);
int result=st.executeUpdate();
System.out.println("Records Changed: "+ result);
}
con.close();
}
}
}
这篇关于**线程“ main”中的异常java.util.InputMismatchException **的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文