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支持)

转:H2 入门的更多相关文章

  1. 纯CSS3实现漂亮的价格表样式代码

    分享一款纯CSS3实现漂亮的价格表样式代码是一款常见的主机商发布产品价格信息页.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div id="main" ...

  2. H2 Database入门

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

  3. JAVA内嵌数据库H2的使用入门

    H2数据库是开源的,非常适合做嵌入式数据库使用,尤其用java编码的时候. H2的优势: 1.h2采用纯Java编写,因此不受平台的限制. 2.h2只有一个jar文件,十分适合作为嵌入式数据库试用. ...

  4. Java嵌入式数据库H2学习总结(一)——H2数据库入门

    一.H2数据库介绍 常用的开源数据库有:H2,Derby,HSQLDB,MySQL,PostgreSQL.其中H2和HSQLDB类似,十分适合作为嵌入式数据库使用,而其它的数据库大部分都需要安装独立的 ...

  5. H2数据库入门使用

    H2数据库入门使用 学习了: https://www.cnblogs.com/xdp-gacl/p/4171024.html http://www.cnblogs.com/xdp-gacl/p/417 ...

  6. Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数

    上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...

  7. Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数

    上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...

  8. 一看就懂的ReactJs入门教程-精华版

    现在最热门的前端框架有AngularJS.React.Bootstrap等.自从接触了ReactJS,ReactJs的虚拟DOM(Virtual DOM)和组件化的开发深深的吸引了我,下面来跟我一起领 ...

  9. 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

随机推荐

  1. Html常用标签元素

    Html常用标签元素 Html常用标签元素 常用HTML标签元素结合及简介 <html></html> 创建一个HTML文档 <head></head> ...

  2. 【性能测试工具】- Siege

    优点:比http_load好用,因为相同的url.txt文件在httpload不好使,所以在易用性上httpload不如siege,仍需进一步调研. 缺点:安装过程中,不能自动创建siege.log文 ...

  3. let const 下篇

    1.不存在变量提升 在之前的js代码中,声明一个变量或者是函数,会存在变量提升的现象,也就是说变量可以在声明之前使用,值为undefined: es5: console.log(a); //undef ...

  4. sqlite 的基本使用1

    mac 下自带的sqlite3 直接在终端键入 sqlite3 即进入 sqlite的交互界面 1,创建数据库 sqlite3 命令 被用来创建新的数据库 比如sqlite3 mydb,即创建了一个m ...

  5. InnoDB online DDL与快速索引创建

    导读:在MySQL5.6之前版本,Innodb表的许多DDL操作是非常昂贵.许多ALTER TABLE操作的原理是通过创建新的空表,定义被要求的表选项和索引,然后逐行拷贝已存在记录到新表,在插入行时更 ...

  6. Linux下C程序的存储空间布局

    一个程序本质上都是由 BSS 段.data段.text段三个组成的.可以看到一个可执行程序在存储(没有调入内存)时分为代码段.数据区和未初始化数据区三部分. BSS段(未初始化数据区):在采用段式内存 ...

  7. C++编程规范(不断更新)

    本文总结一些经验教训,以使编出来的代码更为健壮. 1.定义类/结构体的时候不要和系统函数冲突(尤其是不同系统/平台之间移植的时候) 有时候在windows系统下编译没问题,但是在linux系统下就不行 ...

  8. python 用户登录

    要求: 1.用户在登录之前要判断密码文件是否已经是锁定状态,如果是提示不让登录 2.登录用户密码输入错误3次,就锁定改用户,并更新文件内容 3.登录正确,提示欢迎登录信息 data.txt 文件内容: ...

  9. dede织梦如何防止被黑客入侵渗透?

    dede精简设置篇:避免被hack注射挂马 精简设置篇:不需要的功能统统删除.比如不需要会员就将member文件夹删除.删除多余组件是避免被hack注射的最佳办法.将每个目录添加空的index.htm ...

  10. C# .NET Socket 简单实用框架

    背景: 首先向各位前辈,大哥哥小姐姐问一声好~ 这是我第一次写博客,目前为一个即将步入大四的学生,上学期在一家公司实习了半年,后期发现没有动力,而且由于薪水问题(废话嘛),于是跳槽到这家新的公司. 说 ...