H2数据库操作

运行对H2进行增删改查程序,出现如下错误信息:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.jdbc.UncategorizedSQLException: StatementCallback; uncategorized SQLException for SQL [drop table if exists TEST]; SQL state [90067]; error code [90067]; Connection is broken: "unexpected status 16777216" [90067-190]; nested exception is org.h2.jdbc.JdbcSQLException: Connection is broken: "unexpected status 16777216" [90067-190]
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

Root Cause

org.springframework.jdbc.UncategorizedSQLException: StatementCallback; uncategorized SQLException for SQL [drop table if exists TEST]; SQL state [90067]; error code [90067]; Connection is broken: "unexpected status 16777216" [90067-190]; nested exception is org.h2.jdbc.JdbcSQLException: Connection is broken: "unexpected status 16777216" [90067-190]
	org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84)
	org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
	org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81)
	org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:419)
	org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:443)
	spittr.db.jdbc.JdbcSpitterRepository.establishTable(JdbcSpitterRepository.java:111)
	spittr.controller.jdbcController.establishTable(jdbcController.java:35)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:498)
	org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:180)
	org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:440)
	org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:428)
	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967)
	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)
	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
	org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

Root Cause

org.h2.jdbc.JdbcSQLException: Connection is broken: "unexpected status 16777216" [90067-190]
	org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
	org.h2.message.DbException.get(DbException.java:179)
	org.h2.message.DbException.get(DbException.java:155)
	org.h2.engine.SessionRemote.done(SessionRemote.java:639)
	org.h2.command.CommandRemote.prepare(CommandRemote.java:68)

经过Google,发现出现该错误的主要原因是H2的版本不一致造成的。而查看我整个环境发现,H2服务器运行的是1.4.196,而intellij下的插件是1.4.192。于是想着更改inteliij下的插件,但是发现不好更改。通过阅读H2官方文档(涉及到安装与启动等),发现H2的启动即是通过运行jar文件,于是我关闭196的H2,运行intellij下的jar,命令如下:java -jar h2-1.4.192.jar。然后再次运行程序,数据库的增删改查操作均正常。

参考网址:https://groups.google.com/forum/#!topic/h2-database/qZ5bpboIC6U

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值