mysql空指针异常处理_最新版本mysql jdbc驱动包获取表定义信息空指针异常处理方法...

使用mysql-connector-java 6.0.5时,获取表定义信息出现空指针异常。异常出现在JDBCPool类的多个方法中。解决方法是在MySQL连接字符串中添加参数nullCatalogMeansCurrent=true和serverTimezone=UTC,以避免此类错误。
摘要由CSDN通过智能技术生成

在使用最新的mysql-connector-java 6.0.5时,获取表定义信息会抛出空指针异常: [2016-12-15 10:19:28][DEBUG][com.frameworkset.common.poolman.util.JDBCPool] load table[td_sm_dicttype]'s metadata. java.lang.NullPointerException at com.frameworkset.common.poolman.util.JDBCPool.buildTableMetaData(JDBCPool.java:1705) at com.frameworkset.common.poolman.util.JDBCPool.getTableMetaDataFromDatabase(JDBCPool.java:1851) at com.frameworkset.common.poolman.util.JDBCPool.getTableMetaData(JDBCPool.java:201) at com.frameworkset.common.poolman.util.JDBCPool.getColumnMetaData(JDBCPool.java:217) at com.frameworkset.common.poolman.sql.PrimaryKey.(PrimaryKey.java:304) at com.frameworkset.common.poolman.management.BaseTableManager.getPoolTableInfos(BaseTableManager.java:182) at com.frameworkset.common.poolman.management.BaseTableManager.initTableInfo(BaseTableManager.java:474) at com.frameworkset.common.poolman.management.PoolManBootstrap.start(PoolManBootstrap.java:196) at com.frameworkset.common.poolman.management.PoolManBootstrap.start(PoolManBootstrap.java:99) at com.frameworkset.common.poolman.util.SQLManager.assertLoaded(SQLManager.java:142) at com.frameworkset.common.poolman.util.SQLManager.requestConnection(SQLManager.java:304) at com.frameworkset.platform.sysmgrcore.manager.SysmanagerInit.init(SysmanagerInit.java:39) at com.frameworkset.platform.config.ConfigManager.startSystems(ConfigManager.java:126) at com.frameworkset.platform.config.ConfigManager.init(ConfigManager.java:90) at com.frameworkset.platform.config.ConfigManager.getInstance(ConfigManager.java:138) at com.frameworkset.platform.security.SYSAuthenticateFilter.(SYSAuthenticateFilter.java:39) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at java.lang.Class.newInstance(Class.java:442) at org.eclipse.jetty.servlet.ServletContextHandler$Context.createFilter(ServletContextHandler.java:1051) at org.eclipse.jetty.servlet.FilterHolder.doStart(FilterHolder.java:104) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:768) at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:265) at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1242) at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:717) at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:494) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) at org.eclipse.jetty.server.handler.HandlerWrapper.doStart(HandlerWrapper.java:95) at org.eclipse.jetty.server.Server.doStart(Server.java:282) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) at net.sourceforge.eclipsejetty.starter.embedded.JettyEmbeddedAdapter.start(JettyEmbeddedAdapter.java:67) at net.sourceforge.eclipsejetty.starter.common.AbstractJettyLauncherMain.launch(AbstractJettyLauncherMain.java:84) at net.sourceforge.eclipsejetty.starter.embedded.JettyEmbeddedLauncherMain.main(JettyEmbeddedLauncherMain.java:42) 解决办法:在mysql的连接串中指定参数nullCatalogMeansCurrent=true, 可能还需要指定时区serverTimezone参数否则也会报其他错误:这里指定为serverTimezone=UTC

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值