海水正藍

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

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

          Posted on 2013-08-14 09:33 小胡子 閱讀(374) 評論(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>

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


          網站導航:
           
          主站蜘蛛池模板: 青神县| 酉阳| 沙湾县| 宝丰县| 波密县| 临桂县| 福清市| 安乡县| 西乌珠穆沁旗| 湖口县| 汉中市| 新绛县| 贵溪市| 遂平县| 漾濞| 葵青区| 大同县| 汾西县| 昌图县| 平安县| 滦平县| 河曲县| 民乐县| 溧水县| 新晃| 谢通门县| 揭西县| 衡阳县| 蚌埠市| 定西市| 汤阴县| 澎湖县| 灵山县| 吴桥县| 宣威市| 长兴县| 五华县| 壤塘县| 运城市| 山西省| 广水市|