海水正藍

          面朝大海,春暖花開
          posts - 145, comments - 29, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          sping2+struts2+hibernate3項目整合H2數據庫

          Posted on 2013-08-14 09:33 小胡子 閱讀(373) 評論(0)  編輯  收藏 所屬分類: H2

          大家可以參考下這個網站http://eoffice.im.fju.edu.tw/phpbb/viewtopic.php?p=28685


          1.先啟動項目上的h2/bin下的h2.bat或h2w.bat文件,把h2數據庫啟動起來

          2.SSH2框架和h2數據庫整合方法
          2.1先在數據庫下創建 schema目錄(相當于一個數據庫實例)

            create schema fdrkftcode

          目的是解決這種異常org.h2.jdbc.JdbcSQLException: Schema "fdrkftcode" not found; ...

          2.2在schema目錄下創建表,如創建系統用戶表admin
            create table fdrkftcode.admin(
                id int primary key,
                adminname varchar(50),
                username varchar(50),
                userpwd varchar(50),
                adminrights varchar(50),
                createdate datetime,
                usedtimes int,
                lastlogin datetime,
                curstatus int,
                remark varchar(200)
            )
           
          3.為了使用hibernate操作h2,需要作如下設置,在sql編輯窗口輸入下面這些腳本
          對于實體pojo對象的映射,我是用的annotation,關鍵是id主鍵的映射,如下:
          @Column(name = "ID", nullable = false)

          @Id

          @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "ABC_ID_SEQ")

          @SequenceGenerator(name = "ABC_ID_SEQ", sequenceName = "ABC_ID_SEQ")

          protected Long id;

           注意這里的GeneratedValue和SequenceGenerator的使用,這屬于JPA規范,全部來自javax.persisten

          4.配置applicationContext.xml文件,主要有三個地方要注意:
          4.1修改連接數據庫的JDBC驅動 driverClass的值為org.h2.Driver
          4.2修改連接數據庫所用的URL字符串 jdbcUrl的值為jdbc:h2:tcp://localhost/~/FDRKFTCODE;MODE=MySQL;AUTO_SERVER=TRUE
          4.3修改Hibernate的數據庫方言hibernate.dialect為org.hibernate.dialect.H2Dialect

          5.h2數據庫一些常用操作
          5.1幫助命令help
          5.2表中某字段重命名  ALTER TABLE  fdrkftcode.admin ALTER COLUMN usepwd rename to userpwd
          5.3表中新增字段  ALTER TABLE fdrkftcode.admin ADD IF NOT EXISTS abc varchar(50)
          5.4表中刪除字段  ALTER TABLE fdrkftcode.admin DROP COLUMN IF EXISTS abc
          5.5查找表中記錄 SELECT * from fdrkftcode.admin
          5.6往表中插入記錄 INSERT INTO fdrkftcode.admin VALUES (1,'管理員','admin','admin','10000000000000000000','2013-05-1 00:12:34',3,'2013-05-1 15:32:57',1,'超過級管理員')
          5.7修改表中某記錄 UPDATE fdrkftcode.admin SET fdrkftcode.admin.adminname='超級管理員' where fdrkftcode.admin.id=1

          5.8刪除表中某記錄 DELETE FROM fdrkftcode.admin WHERE fdrkftcode.admin.id=1


          6.下面是我項目的applicationContext.xml配置方法,大家可以參考下

          <?xml version="1.0" encoding="UTF-8"?>
          <beans
              xmlns="http://www.springframework.org/schema/beans"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xmlns:p="http://www.springframework.org/schema/p"
              xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
              
              <!-- 定義使用C3P0連接池的數據源 -->
              <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
                  <!-- 指定連接數據庫的JDBC驅動 -->
                  <property name="driverClass">
                       <value>org.h2.Driver</value>
                   </property>
                  <!-- 連接數據庫所用的URL -->
                  <property name="jdbcUrl">
                      <value>jdbc:h2:tcp://localhost/~/FDRKFTCODE;MODE=MySQL;AUTO_SERVER=TRUE</value>
                  </property>
                  <!-- 連接數據庫的用戶名 -->
                  <property name="user">
                      <value>sa</value>
                  </property>
                  <!-- 連接數據庫的密碼 -->
                  <property name="password">
                      <value></value>
                  </property>
                  <!-- 設置數據庫連接池的最大連接數 -->
                  <property name="maxPoolSize">
                      <value>50</value>
                  </property>
                  <!-- 設置數據庫連接池的最小連接數 -->
                  <property name="minPoolSize">
                      <value>5</value>
                  </property>
                  <!-- 設置數據庫連接池的初始化連接數 -->
                  <property name="initialPoolSize">
                      <value>5</value>
                  </property>
                  <!-- 設置數據庫連接池的連接的最大空閑時間,單位為秒 -->
                  <property name="maxIdleTime">
                      <value>20</value>
                  </property>
              </bean>
              
              <!-- 定義Hibernate的SessionFactory -->
              <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
                  <!-- 依賴注入上面定義的數據源dataSource -->
                  <property name="dataSource" ref="dataSource"/>
                  <!-- 注冊Hibernate的ORM映射文件 -->
                  <property name="mappingResources">
                      <list>
                         <value>com/sungoal/ORM/Admin.hbm.xml</value>
                      </list>
                  </property>
                  <!-- 設置Hibernate的相關屬性 -->
                  <property name="hibernateProperties">
                      <props>
                          <!-- 設置Hibernate的數據庫方言 -->
                          <prop key="hibernate.dialect">org.hibernate.dialect.H2Dialect</prop>
                          <!-- 設置Hibernate是否在控制臺輸出SQL語句,開發調試階段通常設為true -->
                          <prop key="show_sql">true</prop>
                          <!-- 設置Hibernate一個提交批次中的最大SQL語句數 -->
                          <prop key="hibernate.jdbc.batch_size">50</prop>
                      </props>
                  </property>
              </bean>
              
               <!--定義Hibernate的事務管理器HibernateTransactionManager -->
              <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
                  <!-- 依賴注入上面定義的sessionFactory -->
                  <property name="sessionFactory" ref="sessionFactory"/>
              </bean>
              <!-- 裝配通用數據庫訪問類BaseDAOImpl -->    
              <bean id="dao" class="com.sungoal.DAO.BaseDAOImpl">
                  <!-- 依賴注入上面定義的sessionFactory -->
                  <property name="sessionFactory" ref="sessionFactory"/>
              </bean>
              <!-- 部署系統用戶管理業務控制器AdminAction -->
              <bean id="adminAction" class="com.sungoal.struts.action.AdminAction" scope="prototype">
                  <property name="dao" ref="dao"/>
              </bean>
          </beans>

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 开化县| 漳州市| 兴山县| 墨竹工卡县| 侯马市| 济南市| 临邑县| 麻江县| 宁武县| 古丈县| 阳泉市| 江陵县| 都昌县| 襄樊市| 潮安县| 华蓥市| 紫云| 塘沽区| 喀喇沁旗| 隆德县| 大同县| 嘉义市| 金昌市| 凭祥市| 上林县| 宝坻区| 卫辉市| 航空| 新干县| 乌兰县| 奉节县| 富裕县| 攀枝花市| 布尔津县| 禹州市| 鄂州市| 云阳县| 灵武市| 太谷县| 拜城县| 黔东|