我想插入使用JDBC經理與Apache POI從Excel數據導入MySQL數據庫表。這裏是我的代碼:插入數據到MySQL從Excel的JDBC - POI示例程序
TestApp.java
package testapp;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Row;
public class TestApp {
public static void main(String[] args) throws Exception {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/test","root","root");
con.setAutoCommit(false);
PreparedStatement pstm = null ;
FileInputStream input = new FileInputStream("countrycode.xls");
POIFSFileSystem fs = new POIFSFileSystem(input);
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);
Row row;
for(int i=1; i<=sheet.getLastRowNum(); i++){
row = sheet.getRow(i);
String code = row.getCell(0).getStringCellValue();
String desc = row.getCell(1).getStringCellValue();
Date date = row.getCell(2).getDateCellValue();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String Date = sdf.format(date);
String callcode = row.getCell(3).getStringCellValue();
Boolean status = row.getCell(4).getBooleanCellValue();
String currency = row.getCell(5).getStringCellValue();
String sql = "INSERT INTO Ocountry (OCCODE, OCDESC, OCDT, OCCALlCODE, OCINACTIVE, OCUCODE) VALUES('"+code+"','"+desc+"','"+date+"','"+callcode+"','"+status+"','"+currency+"')";
pstm = (PreparedStatement) con.prepareStatement(sql);
pstm.execute();
System.out.println("Import rows "+i);
}
con.commit();
pstm.close();
con.close();
input.close();
System.out.println("Success import excel to mysql table");
}
catch (IOException e) {
e.printStackTrace();
}
}
}
這是當我運行該文件中給出的錯誤:
Exception in thread "main" java.lang.NullPointerException
at testapp.TestApp.main(TestApp.java:36)
Java Result: 1
是否有任何人能幫助我解決我的問題?
您似乎沒有被檢查的細胞具有閱讀它之前的值。如果你這樣做會怎樣? – Gagravarr
我已檢查它,它能夠將值存儲到數據庫中。問題已經解決了。 – susu
只要運行與調試您的應用程序,並在第36行 –