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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM