我正在尝试从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
马克54321,250000
比尔65478,350000
此外,EMPLOYEE表具有以下格式
姓名ID工资
Varachar2号码号码
但是代码正在生成以下错误
线程“主”中的异常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();
}
}
}