博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
h2 + mysql
阅读量:6335 次
发布时间:2019-06-22

本文共 749 字,大约阅读时间需要 2 分钟。

hot3.png

    最近在做一个项目,由于出于各种考虑(如节省数据库空间,数据同步,便于操作...),大都会在一些字段上采取保存关联ID的做法,页面展示的时候就会通过转换的方式,显示关联ID的名称。如部门,职位等。

    如何通过ID得到相关的名称:

①通过连表查询的方式,这种方法相信大伙都不会认同的。

②通过在启动时将部门,职位,这些要高频查询的的表信息加载到缓存中,每次通过查询缓存就能得到显示的名称。但个人觉得每次要在内存中遍历这次数据,而且这些部门表,职位表比较大,感觉也不是一个最佳的方式。

③通过使用内存数据库,在启动时将mysql中的表加载在内存数据库中,查询的时候通过ID查询内存数据库,这比②少了在内存中遍历这个环节,虽然这会涉及连接内存数据库等开销,但感觉没必要再比较下去。

由于本项目只使用内存数据库的查询功能,且是适合windows平台部署,最终内存数据选择为:H2 。

最终:

如何整合h2到项目中呢:只要在项目中加入h2的开发jar包,就可以了,不需要h2的service端(若不是使用h2的内存模式,则要下载service端并进行启动相关服务)。

注意:

To keep the database open, add ;DB_CLOSE_DELAY=-1 to the database URL. 

为了让内存数据库一直开着,必须要在数据库地址后面加上;DB_CLOSE_DELAY=-1

若是数据库地址没有具体指定数据库名称则每次连接都会创建一个新数据db,so 应该在db url 后面指定具体名称,如 jdbc:h2:mem:db1

项目已经在使用,暂时能满足需求,并还没有出什么问题。

 

转载于:https://my.oschina.net/WWWW23223/blog/745550

你可能感兴趣的文章
(转)介绍下Nuget在传统Asp.net项目中的使用
查看>>
C# ArcEngine 实现点击要素高亮并弹出其属性
查看>>
初识GO语言——安装Go语言
查看>>
SDK命令行操作
查看>>
基于Bootstrap的DropDownList的JQuery组件的完善版
查看>>
EXTJS学习系列提高篇:第二十四篇(转载)作者殷良胜,ext2.2打造全新功能grid系列--阅增删改篇...
查看>>
Hadoop MapReduce编程 API入门系列之分区和合并(十四)
查看>>
并查集的应用之求解无向图中的连接分量个数
查看>>
7个神奇的jQuery 3D插件
查看>>
在线浏览PDF之PDF.JS (附demo)
查看>>
波形捕捉:(3)"捕捉设备"性能
查看>>
AliOS Things lorawanapp应用介绍
查看>>
美国人的网站推广方式千奇百怪
查看>>
java web学习-1
查看>>
用maven+springMVC创建一个项目
查看>>
linux设备驱动第四篇:以oops信息定位代码行为例谈驱动调试方法
查看>>
redis知识点整理
查看>>
Hello World
查看>>
Spring3全注解配置
查看>>
ThreadLocal真会内存泄露?
查看>>