`

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

阅读更多
在使用最新的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.<init>(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.<init>(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,
<property name="url"><![CDATA[jdbc:mysql://localhost:3306/bboss?serverTimezone=UTC&useSSL=false&nullCatalogMeansCurrent=true]]></property>

可能还需要指定时区serverTimezone参数否则也会报其他错误:这里指定为serverTimezone=UTC
0
0
分享到:
评论

相关推荐

    第15章 JDBC.docx

    在JDBC开发中,常见的错误包括SQL语法错误、空指针异常、数据类型不匹配等,需要根据错误信息进行调试和修复。 六、综合案例——登录功能实现 6.1 创建表 在数据库中创建用户表,包含用户名和密码字段。 6.2 实现...

    简单的学生管理系统(Java)

    5. **异常处理**:在处理用户输入和数据库操作时,可能会出现各种异常,如空指针异常、SQL异常等。我们需要通过try-catch块捕获并适当地处理这些异常,确保程序的稳定运行。 6. **测试**:在开发过程中,单元测试和...

    J2EE编程(错误之注册信息无法写进数据库)

    总的来说,J2EE开发中遇到的数据库连接、Struts框架使用、断点调试和空指针异常等问题,都需要开发者具备扎实的基础知识,了解类加载机制、框架工作原理以及异常处理。通过细心排查和理解,大部分问题都能迎刃而解。...

    Java-API-chinese_help.zip_Help!

    - **Optional**:表示可能为null的值,避免空指针异常。 九、Java内存模型与垃圾收集 Java虚拟机(JVM)自动管理内存,通过垃圾收集器回收不再使用的对象。理解内存分配、对象生命周期和垃圾收集策略对性能调优至...

    java写的学生管理系统

    在学生管理系统中,可能需要处理如空指针异常、数组越界异常等常见问题,确保程序的健壮性。 5. **文件操作**:如果选择将数据持久化到文件,那么需要了解Java的文件I/O操作,如File类、BufferedReader和...

    JSP学生管理系统

    为确保系统的稳定性和用户体验,应设置适当的错误处理机制,如捕获并处理SQL异常、空指针异常等,向用户友好地显示错误信息。 7. **前端界面** 使用HTML、CSS和JavaScript构建用户界面,HTML负责结构,CSS负责...

    Java Spring boot框架下mybatis +分页的简单接口demo

    合理的空指针判断" value="true"/&gt; ``` - 在pom.xml文件中添加PageHelper依赖的scope为provided,避免打包时包含重复的依赖。 6. **Controller层** - 创建UserController,定义处理HTTP请求的方法,如...

    java实现MyDVD功能网

    在处理用户输入和数据库操作时,可能会遇到各种异常情况,如空指针异常、SQL异常等。良好的编程实践要求对这些异常进行捕获和处理,以确保程序的健壮性。 6. **用户界面(UI)设计**: UI设计可能是基于Swing或...

    java模拟通讯录

    - 在处理用户输入或数据库操作时,可能会遇到异常,如空指针异常、SQL异常等。良好的异常处理机制能确保程序的稳定性和用户体验。 7. **文件操作**: - 尽管数据主要存储在数据库中,但为了备份或迁移目的,程序...

    乐优商城.xmind

    报错500 空指针异常 调用Service时候 忘记@Autowired 保存 VO视图对象 @NoArgsConstructor 生成一个无参数的构造方法 @AllArgsConstructor 会生成一个包含所有变量 Controller @PutMapping 添加信息,...

    Druid jar包和配置文件.rar

    - **防御机制**:包括SQL注入防御、空指针检测、Statement生命周期管理等,增强了系统的安全性。 - **性能优化**:通过配置参数,如最大空闲时间、最小连接数、最大连接数等,可以进行性能调优。 3. **配置文件...

    2021-2022计算机二级等级考试试题及答案No.10587.docx

    根据给定文件的信息,我们可以总结出以下相关的IT知识点: ### 1. 运行Visual FoxPro 6.0 - **知识点**: 正确启动Visual FoxPro 6.0的方法。 - **解释**: Visual FoxPro 是一款流行的关系数据库管理系统。正确的...

Global site tag (gtag.js) - Google Analytics