导入Excel成功后,数据读入数据库失败
蜡_小新 发布于103月前 3答/3294阅

我想实现的功能:导入Excel将Excel中的数据导入数据库。


过程中遇到的问题:Excel导入成功,但是写入数据库失败,出现NullPointException,使用的是导出

Excel的模板。

我的分析过程如下:

java.lang.NullPointerException

at com.jfinal.plugin.activerecord.CaseInsensitiveContainerFactory.convertCase(CaseInsensitiveContainerFactory.java:53)

at com.jfinal.plugin.activerecord.CaseInsensitiveContainerFactory.access$000(CaseInsensitiveContainerFactory.java:28)

at com.jfinal.plugin.activerecord.CaseInsensitiveContainerFactory$CaseInsensitiveMap.put(CaseInsensitiveContainerFactory.java:98)

at com.jfinal.plugin.activerecord.CaseInsensitiveContainerFactory$CaseInsensitiveMap.put(CaseInsensitiveContainerFactory.java:89)

at com.jfinal.plugin.activerecord.Record.set(Record.java:186)

at com.eova.common.utils.excel.ExcelUtil.importExcel(ExcelUtil.java:121)

at com.eova.template.single.SingleAtom.run(SingleAtom.java:41)

at com.jfinal.plugin.activerecord.DbPro.tx(DbPro.java:720)

at com.jfinal.plugin.activerecord.DbPro.tx(DbPro.java:757)

at com.jfinal.plugin.activerecord.Db.tx(Db.java:460)

at com.eova.template.single.SingleController.doImportXls(SingleController.java:99)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:497)

at com.jfinal.aop.Invocation.invoke(Invocation.java:73)

at com.eova.interceptor.LoginInterceptor.intercept(LoginInterceptor.java:50)

at com.jfinal.aop.Invocation.invoke(Invocation.java:67)

at com.jfinal.core.ActionHandler.handle(ActionHandler.java:74)

at com.jfinal.plugin.druid.DruidStatViewHandler.handle(DruidStatViewHandler.java:75)

at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:72)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)

at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:453)

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)

at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:560)

at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)

at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072)

at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382)

at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)

at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006)

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)

at org.eclipse.jetty.server.Server.handle(Server.java:365)

at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485)

at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:937)

at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:998)

at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:856)

at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)

at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)

at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)

at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)

at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)

at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)

at java.lang.Thread.run(Thread.java:745)





[沙发] Jieven
1.必须使用导出的Excel作为导入的模版
2.需要写AOP来控制导入具体逻辑(文档有详细介绍)
增量?覆盖?校验?。。。。这些都需要自己控制!
3.Debug 看报错的具体原因
最佳
[地板] 小菜鸟
咱们框架的导入,核心就是en 跟cn的一个map健值对。自己写方法,把空格去掉,就没有问题了
提交评论