zoukankan      html  css  js  c++  java
  • H2 Database入门

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

  • 相关阅读:
    设计模式---适配器模式
    【面经】2019-4-1 杭州边锋网络面经
    web前端基础——jQuery编程进阶
    web前端基础——jQuery编程基础
    web前端基础——初识HTML DOM编程
    web前端基础——初识JavaScript
    web前端基础——初识CSS
    web前端基础——初识HTML
    CentOS 6.5上安装python2.7、pip以及Python命令行补全和yum冲突解决
    Python中常用技巧整理
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/H2-database-tutorial.html
Copyright © 2011-2022 走看看