H2 Database入门

简介: H2 Database做为轻量级的内嵌数据库,功能十分强大,而且运行时只需要一个jar包即可,下表是官网的描述: 更详细的对比见官网页面: http://www.h2database.com/html/features.

H2 Database做为轻量级的内嵌数据库,功能十分强大,而且运行时只需要一个jar包即可,下表是官网的描述:

更详细的对比见官网页面: http://www.h2database.com/html/features.html#comparison

 

下面是开发入门步骤:

一、maven中添加依赖项

1         <dependency>
2             <groupId>com.h2database</groupId>
3             <artifactId>h2</artifactId>
4             <version>1.3.176</version>            
5         </dependency>    

 

二、Spring配置文件

a) 数据源配置

 1     <bean id="dataSource" class="org.h2.jdbcx.JdbcConnectionPool"
 2         destroy-method="dispose">
 3         <constructor-arg>
 4             <bean class="org.h2.jdbcx.JdbcDataSource">
 5                 <!-- 内存模式 -->
 6                 <property name="URL" value="jdbc:h2:mem:test" />
 7                 <!-- 文件模式 -->
 8                 <!-- <property name="URL" value="jdbc:h2:testRestDB" /> -->                 
 9                 <property name="user" value="sa" />
10                 <property name="password" value="sa" />
11             </bean>
12         </constructor-arg>
13     </bean>

注:密码不要留空(可以根据需要修改成其它值),否则运行时会报" 用户名、密码错之类"的Error

b) 初始化数据库脚本

1     <!-- 初始化数据表结构 -->
2     <jdbc:initialize-database data-source="dataSource"
3         ignore-failures="ALL">
4         <jdbc:script location="classpath:database/h2/create-table.sql" />
5         <jdbc:script location="classpath:database/h2/import-data.sql" />
6     </jdbc:initialize-database>

配置这个以后,每次应用启动前,会先执行create-table.sql,然后再执行import-data.sql,十分方便测试前,先初始化db环境

 

c) hibernate支持

 1     <bean id="sessionFactory"
 2         class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
 3         <property name="dataSource" ref="dataSource" />
 4         <property name="packagesToScan">
 5             <list>
 6                 <value>com.cnblogs.yjmyzz.entity</value>
 7             </list>
 8         </property>
 9         <property name="mappingLocations">
10             <list>
11                 <value>classpath*:hibernate/**/*.hbm.xml</value>
12             </list>
13         </property>
14         <property name="hibernateProperties">
15             <props>
16                 <prop key="hibernate.dialect">org.hibernate.dialect.H2Dialect</prop>
17                 <!-- <prop key="current_session_context_class">thread</prop> -->
18                 <prop key="hibernate.format_sql">true</prop>
19                 <prop key="hibernate.show_sql">true</prop>
20                 <prop key="hibernate.use_sql_comments">true</prop>
21                 <prop key="hibernate.max_fetch_depth">3</prop>
22                 <prop key="hibernate.jdbc.batch_size">20</prop>
23                 <prop key="hibernate.jdbc.fetch_size">20</prop>
24                 <prop key="hibernate.cache.use_second_level_cache">false</prop>
25             </props>
26         </property>
27     </bean>

关键是16行,数据库方言的设置

 

d)mybatis分页插件设置

 1     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
 2         <property name="dataSource" ref="dataSource" />
 3         <property name="configLocation" value="classpath:mybatis-config.xml"></property>
 4         <property name="typeAliasesPackage" value="com.cnblogs.yjmyzz.entity"></property>
 5         <property name="mapperLocations" value="classpath:mybatis/**/*.xml"></property>
 6         <property name="plugins">
 7             <list>
 8                 <bean
 9                     class="com.github.miemiedev.mybatis.paginator.OffsetLimitInterceptor">
10                     <property name="dialectClass"
11                         value="com.github.miemiedev.mybatis.paginator.dialect.H2Dialect"></property>
12                 </bean>
13             </list>
14         </property>
15     </bean>

关键是11行,方言的设置

 

三、代码测试:

 1     @Test
 2     public void testConnH2() throws SQLException, IOException {
 3         ApplicationContext ctx = new ClassPathXmlApplicationContext(
 4                 "spring-datasource.xml");
 5         OrderMapper orderMapper = ctx.getBean(OrderMapper.class);
 6         List<TOrder> orders = orderMapper.getAllOrder();
 7         for (TOrder o : orders) {
 8             System.out.println(o.getClientname());
 9         }
10         ((ClassPathXmlApplicationContext) ctx).close();
11 
12     }

上面演示了mybatis结合H2的使用示例

 

四、控制台界面

H2还提供了一个可视化界面

Windows开始菜单->H2->H2 console,点击connect连接就行了

有不熟悉的函数啥的,直接在SQL输入区,输入 help,然后run,下面就有帮助信息 

完整的示例代码下载  (基于struts2的rest-plugin showcase,增加了mybatis3 + hibernate4 + spring4 + velocity支持)

目录
相关文章
|
SQL XML 网络协议
Liquibase----XML格式通过update更新H2 Database数据库
Liquibase----XML格式通过update更新H2 Database数据库
209 0
Liquibase----XML格式通过update更新H2 Database数据库
|
网络协议 Java 数据库连接
java:如何用代码控制H2 Database启动
1、纯手动start/stop 1 package com.cnblogs.yjmyzz.h2; 2 3 import java.sql.Connection; 4 import java.
1016 0
|
2月前
|
Oracle 关系型数据库 数据库
windows Oracle Database 19c 卸载教程
打开任务管理器 ctrl+Shift+Esc可以快速打开任务管理器,找到oracle所有服务然后停止。 停止数据库服务 在开始卸载之前,确保数据库服务已经停止。你可以使用以下命令停止数据库服务: net stop OracleServiceORCL Universal Installer 卸载Oracle数据库程序 一般情况运行Oracle自带的卸载程序,如使用Universal Installer 工具卸载。 点击开始菜单找到Oracle,然后点击Oracle安装产品,再点击Universal Installer。 点击之后稍等一会然后会进入进入下图界面,点击卸载产品。 选中要删除的Orac
41 1
|
3月前
|
存储 Oracle 关系型数据库
windows 使用 Oracle Database 19c
Oracle数据库是由美国Oracle Corporation(甲骨文公司)开发和提供的一种关系型数据库管理系统,它是一种强大的关系型数据库管理系统(RDBMS)。它使用表格(表)组织和存储数据,通过SQL语言进行数据管理。数据以表格形式存储,表之间可以建立关系。支持事务处理、多版本并发控制、安全性和权限控制。具有高可用性、容错性,支持分布式数据库和可扩展性。Oracle Corporation提供全面的支持和服务,使其成为企业级应用的首选数据库系统。
50 0
|
8月前
|
Oracle 关系型数据库 Linux
服务器Centos7 静默安装Oracle Database 12.2(下)
服务器Centos7 静默安装Oracle Database 12.2(下)
175 0
|
8月前
|
Oracle 安全 关系型数据库
服务器Centos7 静默安装Oracle Database 12.2(上)
服务器Centos7 静默安装Oracle Database 12.2(上)
80 0
|
8月前
|
存储 Oracle 关系型数据库
|
SQL XML Oracle
Oracle Database Predefined Roles
Table 4-3 Oracle Database Predefined Roles
195 0
|
SQL XML Oracle
Oracle Database 19c 中的自动索引 (DBMS_AUTO_INDEX)
Oracle 数据库 19c 引入了自动索引功能,它可以让您将一些有关索引管理的决策交给数据库。
|
Web App开发 Oracle 关系型数据库
Oracle 企业管理器DataBase Control使用说明
本文目录 1. 简介 2. 企业管理器登录方式 3. 企业管理器常用功能 3.1 查看数据库基本信息 3.2 查看用户和角色 3.3 查看数据库对象 4. 想法
596 0
Oracle 企业管理器DataBase Control使用说明

相关产品

  • 云迁移中心