`
can_do
  • 浏览: 266238 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hsql错误: user lacks privilege or object not found: LAST_INSERT_ID

阅读更多
1.1.1、问题现象
环境:windows vista+JDK1.6+Apusic7.0+cfconsole+hsqldb2.2.6



从hsqldb中查询数据时报错,提示用户权限缺失或者对象不存在。

1.1.2、日志情况
错误日志如下:

org.springframework.dao.InvalidDataAccessResourceUsageException: could not retrieve generated id after insert: [com.wondersgroup.framework.security.bo.UserLoginHistory]; nested exception is org.hibernate.exception.SQLGrammarException: could not retrieve generated id after insert: [com.wondersgroup.framework.security.bo.UserLoginHistory]

       at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:630)

       at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)

       at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424)

       at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)

       at org.springframework.orm.hibernate3.HibernateTemplate.saveOrUpdate(HibernateTemplate.java:748)

       at com.wondersgroup.framework.core.dao.impl.AbstractHibernateDAOImpl.save(AbstractHibernateDAOImpl.java:131)

       at com.wondersgroup.framework.security.service.impl.UserServiceImpl.addUserLoginHistory(UserServiceImpl.java:922)

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

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

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

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

       at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)

       at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)

       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)

       at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)

       at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)

       at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

       at $Proxy24.addUserLoginHistory(Unknown Source)

       at com.wondersgroup.framework.common.web.login.action.LoginAction.recordUserLogin(LoginAction.java:127)

       at com.wondersgroup.framework.common.web.login.action.LoginAction.operate(LoginAction.java:297)

       at com.wondersgroup.framework.core.web.struts2.action.BaseAction.execute(BaseAction.java:42)

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

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

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

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

       at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)

       at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)

       at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)

       at com.wondersgroup.framework.core.web.struts2.interceptor.AjaxExceptionMappingInterceptor.intercept(AjaxExceptionMappingInterceptor.java:44)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

       at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

       at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

       at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)

       at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

       at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

       at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

       at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)

       at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48)

       at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

       at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

       at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

       at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:184)

       at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

       at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

       at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

       at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:105)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

       at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

       at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

       at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:83)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

       at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

       at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

       at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:207)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

       at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

       at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

       at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:74)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

       at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

       at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

       at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:127)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

       at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

       at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

       at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:107)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

       at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

       at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

       at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:206)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

       at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

       at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

       at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:115)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

       at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

       at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

       at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:143)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

       at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

       at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

       at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:121)

       at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

       at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

       at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

       at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:170)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

       at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

       at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

       at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:123)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

       at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

       at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

       at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)

       at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)

       at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)

       at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)

       at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)

       at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504)

       at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:422)

       at com.apusic.web.container.FilterComponent.doFilter(Unknown Source)

       at com.apusic.web.container.FilterChainImpl.performFilter(Unknown Source)

       at com.apusic.web.container.FilterChainImpl.doFilter(Unknown Source)

       at com.wondersgroup.framework.common.web.filter.CommonWebFilter.doFilter(CommonWebFilter.java:56)

       at com.apusic.web.container.FilterComponent.doFilter(Unknown Source)

       at com.apusic.web.container.FilterChainImpl.performFilter(Unknown Source)

       at com.apusic.web.container.FilterChainImpl.doFilter(Unknown Source)

       at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)

       at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

       at com.apusic.web.container.FilterComponent.doFilter(Unknown Source)

       at com.apusic.web.container.FilterChainImpl.performFilter(Unknown Source)

       at com.apusic.web.container.WebContainer.invoke(Unknown Source)

       at com.apusic.web.container.WebContainer.processRequest(Unknown Source)

       at com.apusic.web.http.VirtualHost.processRequest(Unknown Source)

       at com.apusic.web.http.HttpServer.processRequest(Unknown Source)

       at com.apusic.web.http.HttpConnectionHandler.service(Unknown Source)

       at com.apusic.web.http.ConnectionHandler.processRequest(Unknown Source)

       at com.apusic.web.http.ConnectionHandler.processConnection(Unknown Source)

       at com.apusic.web.http.ConnectionHandler.run(Unknown Source)

       at com.apusic.util.ThreadPoolImpl$WorkerThread.run(Unknown Source)

Caused by: org.hibernate.exception.SQLGrammarException: could not retrieve generated id after insert: [com.wondersgroup.framework.security.bo.UserLoginHistory]

       at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:90)

       at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)

       at org.hibernate.id.insert.AbstractSelectingDelegate.performInsert(AbstractSelectingDelegate.java:93)

       at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2186)

       at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2666)

       at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:71)

       at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)

       at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:321)

       at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)

       at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130)

       at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)

       at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)

       at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:117)

       at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)

       at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:534)

       at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:526)

       at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:522)

       at org.springframework.orm.hibernate3.HibernateTemplate$16.doInHibernate(HibernateTemplate.java:751)

       at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)

       ... 138 more

Caused by: java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: LAST_INSERT_ID

       at org.hsqldb.jdbc.Util.sqlException(Unknown Source)

       at org.hsqldb.jdbc.Util.sqlException(Unknown Source)

       at org.hsqldb.jdbc.JDBCPreparedStatement.<init>(Unknown Source)

       at org.hsqldb.jdbc.JDBCConnection.prepareStatement(Unknown Source)

       at com.apusic.jdbc.adapter.ConnectionHandle.prepareStatement(Unknown Source)

       at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:534)

       at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:116)

       at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:109)

       at org.hibernate.id.insert.AbstractSelectingDelegate.performInsert(AbstractSelectingDelegate.java:76)

       ... 154 more

1.1.3、问题分析
从错误日志的提示,可以看出根本原因是:Caused by: java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: LAST_INSERT_ID,考虑数据库中此列是否存在,经查阅资料发现,导致数据库中列丢失的原因是,通过hsqldb管理创建完sql脚本,没有正常关闭数据导致的。





1.1.4、解决方案
通过hsqldb的管理器执行完sql脚本后,要执行【shutdown】命令来关闭数据库,而不要采用[Ctrl]+[C]的方式,否则会造成数据错误,提示找不到对象或者权限缺失:Caused by: java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: LAST_INSERT_ID。

【温馨提示】
如果您觉得满意,可以选择支持下,您的支持是我最大的动力:

分享到:
评论

相关推荐

    HSQL安装部署使用手册

    《HSQL数据库安装部署使用详解》 HSQL(HyperSQL)是一种轻量级、高性能的关系型数据库管理系统,常用于开发测试环境或者嵌入式应用。本文将详细介绍HSQL的安装、部署以及使用过程,帮助您顺利搭建并操作HSQL数据库...

    收集的全部HSQL DataBase资料(HSQL DataBase-关于Java 的纯数据库)

    HSQL Database,全称为HyperSQL Database,是一款轻量级、高性能、开源的SQL关系型数据库管理系统,特别适合于Java应用程序。这款数据库系统以其简洁的API、快速的性能和全面的SQL支持,在Java开发环境中得到了广泛...

    hsql数据库详细教程

    【HSQL数据库详解】 HSQL(HyperSQL)数据库是一款轻量级、开源的Java数据库管理系统,适用于各种项目,尤其在Java开发环境中广受欢迎。它的特点是体积小巧,仅一个jar文件即可包含所有必需组件,如数据库引擎、...

    hsql查询语法

    HSQL查询语法 HSQL(Hibernate Query Language)是一种强大且灵活的查询语言,用于查询Hibernate应用程序中的数据。下面将对HSQL的基本语法和使用方法进行详细介绍。 1. 大小写敏感性问题 HSQL查询语句对大小写并...

    hsql-file数据库的java简单调用实现

    标题中的“hsql-file数据库的java简单调用实现”指的是使用Java编程语言与HSQLDB(HyperSQL数据库)进行交互,特别是在文件模式下操作数据库。HSQLDB是一种轻量级、开源的关系型数据库管理系统,它支持内存模式和...

    hsql可视化工具

    HSQL(HyperSQL)是一种轻量级、高性能的关系型数据库管理系统,它支持SQL标准并提供了多种运行模式,包括单用户模式、嵌入式模式和服务器模式。HSQL因其小巧、快速和易于使用而受到开发者们的青睐,尤其适用于开发...

    有关hsql处理文本数据库的笔记

    INSERT INTO Table1 (id, name, description) VALUES (2, 'Item2', 'The second item description'); ``` 一旦数据被导入,你就可以像操作任何其他关系数据库一样对`Table1`进行查询、更新和删除操作。例如,查询...

    如何使用hsql数据库

    如何使用hsql数据库

    HSQL JDBC操作

    标题中的“HSQL JDBC操作”指的是使用Java的JDBC(Java Database Connectivity)接口与HSQLDB(HyperSQL数据库)进行交互。HSQLDB是一个轻量级、开源的关系型数据库管理系统,广泛用于测试和开发环境中,因为它启动...

    oracle drop table purge无备份bbed恢复.docx

    create user hsql identified by hsql; grant connect, resource, dba to hsql; ``` 2. **创建表空间**:接下来创建一个名为`hsql`的表空间。 ```sql create tablespace hsql datafile '/data2/enmo/hsql01....

    HSQL源代码

    《深入理解HSQL源代码与Eclipse环境搭建》 HSQLDB,全称为HyperSQL Database,是一款开源的关系型数据库管理系统,特别适用于Java应用程序。它的源代码开放,使得开发者能够深入理解其内部工作原理,进行定制化开发...

    epsg对照表

    epsg对照表 * EPSG HSQL Plugin: will unpack an hsql database containing the official epsg database into a temp directory, a great solution for desktop applications. * EPSG WKT Plugin: uses an internal...

    Ext+HSQL_DEMO

    **标题:“Ext+HSQL_DEMO”** **描述:**这个项目是一个综合示例,展示了如何将Ext JS前端框架与HSQLDB内存数据库相结合来构建一个动态的数据驱动的应用程序。Ext JS是一个强大的JavaScript库,主要用于构建用户...

    HSQL数据库2.2.5

    《HSQL数据库2.2.5:轻量级数据库解决方案详解》 HSQL数据库,全称为HyperSQL Database,是一款开源的、轻量级的Java数据库管理系统,尤其适用于内存模式、单机模式以及分布式多机环境。HSQLDB 2.2.5是其一个重要的...

    HSQL DB 在Web 应用下使用方法

    Connection conn = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost/testdb", "sa", ""); ``` 2. **执行查询**: 执行SQL查询并处理结果集: ```java Statement stmt = conn.createStatement(); ...

    Spring数据库访问(HSQL)(四)

    在本篇博文中,我们将深入探讨Spring框架在数据库访问方面的应用,特别关注使用HSQL内存数据库的实践。Spring是Java领域最广泛使用的轻量级框架之一,它为开发者提供了全面的事务管理、数据访问集成以及IoC...

Global site tag (gtag.js) - Google Analytics