这个问题在这里已经有答案了:
什么是nullpointerexception,如何修复它(12个答案)
两年前关门了。
我有一个名为customer\u info.csv的文件,其中包含如下示例数据:
客户id名字姓用户类型报告收件人电子邮件首次登录时间首次登录日期地址第1行地址第2行城市州邮编
10001 michelle villegas3储蓄srinath michelle。villegas3@nobody.com 邮编:917023308,地址:y 07-10-18,地址:1050 west fifth street azusa ind 917023308
这是我需要存储数据的表。我以字符串格式存储所有内容,因为它只是一个临时表。
Create Table Customer_Info_ST
(
Cust_ID varchar(5),
First_Name varchar(15),
Last_Name varchar(15),
User_Type varchar(10),
Report_To_Id varchar(10),
Email varchar(30),
First_Time_Logged_In varchar(1),
First_Time_Login_Date varchar(11),
Address_Line1 varchar(30),
Address_Line2 varchar(30),
City varchar(15),
State varchar(3),
Zip varchar(12)
);
我已经编写了以下代码将其存储在表中。
public class CustInfoDataLoader {
static String sql, tableName;
private static PreparedStatement pstmt;
private static Statement stmt;
private static final String filePath = "Customer_Info.csv";
public static void main(String[] args) throws SQLException, FileNotFoundException, IOException, ParseException {
readCsv("Customer_info_ST"); //Line 24 in my code
//readCsvUsingLoad();
}
private static void readCsv(String tableName) throws FileNotFoundException, IOException, SQLException, ParseException {
CSVReader csvreader = null;
try{
Reader reader = Files.newBufferedReader(Paths.get(filePath));
csvreader = new CSVReaderBuilder(reader).withSkipLines(1).build();
sql = "insert into ? values (?,?,?,?,?,?,?,?,?,?,?,?,?)";
ManageDBResource.createConnectionToDB();
pstmt = ManageDBResource.conn.prepareStatement(sql);
String[] rowData = null;
while((rowData = csvreader.readNext()) != null) {
pstmt.setString(1, tableName);
int i = 2;
String state = rowData[11];
for (String data : rowData) {
if(i == 9 && data != null && state != "IND") {
java.text.SimpleDateFormat source = new java.text.SimpleDateFormat("MM-dd-yyyy");
java.util.Date date = source.parse(data);
java.text.SimpleDateFormat target = new java.text.SimpleDateFormat("yyyy-MM-dd");
data = target.format(date).toString();
}
pstmt.setString(i++,data);
//System.out.print(data + " ");
}
int result = pstmt.executeUpdate();
//System.out.println();
if(result == 1) {
System.out.println("Data loaded Successfully.");
}
}
}
catch (Exception e) {
System.out.println(e.getMessage());
}
finally {
pstmt.close(); //Line 69 in my code file
csvreader.close();
}
}
我得到以下错误:
Exception in thread "main" java.lang.NullPointerException
at CustInfoDataLoader.readCsv(CustInfoDataLoader.java:69)
at CustInfoDataLoader.main(CustInfoDataLoader.java:24)
1条答案
按热度按时间vzgqcmou1#
你能关上吗
PreparedStatement
在你之后executeUpdate()
?如上例所述: