Вставка данных в MySQL из Excel Программа JDBC – POI

Я хотел бы вставить данные в таблицу базы данных MySQL из Excel с помощью JDBC-менеджера с Apache 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 

Кто-нибудь может помочь мне решить мою проблему?

Похоже, что эта строка не нравится:

String Date = sdf.format(date);

Вы уверены, что date переменной имеет ненулевое значение в этой точке?

Я использовал этот код. Он определенно работает, и я изменил его следующим образом:

 import java.io.FileInputStream; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import org.apache.poi.poifs.filesystem.POIFSFileSystem; //import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.*; public class TestApp { public static void main(String[] args) throws Exception { try { Class forName = Class.forName("com.mysql.jdbc.Driver"); Connection con = null; con = DriverManager.getConnection("jdbc:mysql://localhost/tables", "root", "root"); con.setAutoCommit(false); PreparedStatement pstm = null; FileInputStream input = new FileInputStream("C:\\Users\\Desktop\\a1.xls"); POIFSFileSystem fs = new POIFSFileSystem(input); Workbook workbook; workbook = WorkbookFactory.create(fs); Sheet sheet = workbook.getSheetAt(0); Row row; for (int i = 1; i <= sheet.getLastRowNum(); i++) { row = (Row) sheet.getRow(i); String name = row.getCell(0).getStringCellValue(); String add = row.getCell(1).getStringCellValue(); int contact = (int) row.getCell(2).getNumericCellValue(); String email = row.getCell(3).getStringCellValue(); String sql = "INSERT INTO employee (name, address, contactNo, email) VALUES('" + name + "','" + add + "'," + contact + ",'" + email + "')"; 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) { } } } 
  • Как разобрать CSV и импортировать в проблему MYSQL
  • Редактирование скрипта Python от MySQL до MSSQL
  • PHP не экспортирует базу данных MySQL в правильном формате
  • Ошибка при загрузке файла excel в базу данных
  • Как вставить \ 0 в phpmyadmin без экранирования?
  • Множественный фильтр внутри SELECT SQL Statment
  • MySql для Excel: как предотвратить изменение данных MySql при использовании MySql для Excel
  • Как вставить строки из excel в mysql db?
  • Экспорт базы данных MySQL в Excel CSV на рабочий стол в PHP
  • Подключить разные идентификаторы к нескольким именам с одинаковым идентификатором
  • Подключение к MySQL из Excel VBA
  • Interesting Posts
    Давайте будем гением компьютера.