转:H2 入门
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 入门的更多相关文章
- 纯CSS3实现漂亮的价格表样式代码
分享一款纯CSS3实现漂亮的价格表样式代码是一款常见的主机商发布产品价格信息页.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div id="main" ...
- H2 Database入门
H2 Database做为轻量级的内嵌数据库,功能十分强大,而且运行时只需要一个jar包即可,下表是官网的描述: 更详细的对比见官网页面: http://www.h2database.com/html ...
- JAVA内嵌数据库H2的使用入门
H2数据库是开源的,非常适合做嵌入式数据库使用,尤其用java编码的时候. H2的优势: 1.h2采用纯Java编写,因此不受平台的限制. 2.h2只有一个jar文件,十分适合作为嵌入式数据库试用. ...
- Java嵌入式数据库H2学习总结(一)——H2数据库入门
一.H2数据库介绍 常用的开源数据库有:H2,Derby,HSQLDB,MySQL,PostgreSQL.其中H2和HSQLDB类似,十分适合作为嵌入式数据库使用,而其它的数据库大部分都需要安装独立的 ...
- H2数据库入门使用
H2数据库入门使用 学习了: https://www.cnblogs.com/xdp-gacl/p/4171024.html http://www.cnblogs.com/xdp-gacl/p/417 ...
- Angular2入门系列教程6-路由(二)-使用多层级路由并在在路由中传递复杂参数
上一篇:Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数 之前介绍了简单的路由以及传参,这篇文章我们将要学习复杂一些的路由以及传递其他附加参数.一个好的路由系统可以使我们 ...
- Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数
上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...
- 一看就懂的ReactJs入门教程-精华版
现在最热门的前端框架有AngularJS.React.Bootstrap等.自从接触了ReactJS,ReactJs的虚拟DOM(Virtual DOM)和组件化的开发深深的吸引了我,下面来跟我一起领 ...
- 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
随机推荐
- Eclipse错误:Implicit super constructor ClassName is undefined for default constructor. Must define an explicit constructor
public class Test01 { private String name; private int age; public Test01(String name){ this.name = ...
- LoadRunner入门(二)
三.设计场景 1.打开Controller 2.选择运行的脚本 3.场景设置 3.1修改场景模式 点击scenario-convert- 修改场景百分比模式 (1)Group Name:脚本名称 (2 ...
- 27. Remove Element【leetcode】
27. Remove Element[leetcode] Given an array and a value, remove all instances of that value in place ...
- 7种方法解决移动端Retina屏幕1px边框问题
在Reina(视网膜)屏幕的手机上,使用CSS设置的1px的边框实际会比视觉稿粗很多.在之前的项目中,UI告诉我说我们移动项目中的边框全部都变粗了,UI把他的设计稿跟我的屏幕截图跟我看,居然真的不一样 ...
- 页面嵌套frame,Selenium定位问题
有时候,什么定位元素的方法都试过了,还是定位不到元素,就考虑frame切换问题 driver.switchTo().frame("定位到的frame元素"); //接下来就可以在这 ...
- MySQL连接问题【如何解决MySQL连接超时关闭】
--MySQL连接问题[如何解决MySQL连接超时关闭] ------------------------------------------------转载 最近做网站有一个站要用到WEB网页采集器 ...
- MYSQL数据库相关操作---读书笔记分享
===================数据库软件: <DBMS,DataBase Management System >数据库: 保存特定类型数据的容器<DB,database> ...
- php创建多级目录完整封装类操作
创建多级目录函数中调用创建指定下的指定文件的函数: public function create_dir($dir,$mode=0777) { return is_dir($dir) or ($thi ...
- How to resolve the truncate/drop/delete/join hang issue in ADW
In some case, we found that when we execute the sql commands like truncate table, drop table, delete ...
- 弹性伸缩布局-flex
弹性伸缩布局-flex 引言:本文主要参照阮一峰的网络日志 .郭锦荣的博客总结完成. 正文: 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性 ...