程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> ssh(sturts2_spring_hibernate) 框架搭建之hibernate2,搭建springhibernate

ssh(sturts2_spring_hibernate) 框架搭建之hibernate2,搭建springhibernate

編輯:JAVA綜合教程

ssh(sturts2_spring_hibernate) 框架搭建之hibernate2,搭建springhibernate


一、今天要進行解答的是對上次hibernate1進行進一步的完善,這次第一是進一步使用spring注入一個SessionFactory實例,避免了自己new實例;第二是應用數據庫池(c3p0)。

二、環境搭建:

   ⒈在之前的基礎(struts2的jar包,spring的jar包,和hibernate的jar包,如果不懂請看:http://www.cnblogs.com/demoMeng/):

    現在需要使用到c3p0的jar,找到下載的hibernate壓縮包,解壓,解壓的根目錄--》lib--》optional--》c3p0中的jar復制到你的項目的lib中即可:

      

    ⒉去掉hibernate.cfg.xml配置文件,取而代之的是spring中注入的SessionFactory(在hibernate.cfg.xml中進行配置的也是sessionFactory)

     之前的項目:                                                  

     

       之前的hibernate.cfg.xml配置文件: 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">


<hibernate-configuration>
	<session-factory>
	<!-- 配置相關的數據庫基本信息  -->
			<!-- 數據庫驅動 -->
			<property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
			<!-- 數據庫訪問路徑 -->
			<property name="connection.url">jdbc:sqlserver://localhost:1433;DatabaseName = webLastExam_20160727</property>
			<!-- 登錄用戶名 -->
			<property name="connection.username">sa</property>
			<!-- 登錄密碼 -->
			<property name="connection.password">123456</property>
		
	<!-- 配置hibernate的基本信息 -->
		
		<!-- 配置hibernate使用的數據庫方言  -->	
		<property name="dialect">org.hibernate.dialect.SQLServer2008Dialect</property>
						
		<!-- 設置數據庫連接池的大小 -->
		<property name="connection.pool_size">5</property>
		 
		<!-- 執行操作時候是否在控制台打印sql語句  -->
		<property name="show_sql">true</property>	
		
		<!-- 是否進行格式化sql語句,指的是在控制台中輸出的sql語句是否換行 -->
		<property name="format_sql">true</property>
		
		<!--生成數據表的策略-->
		<property name="hbm2ddl.auto">update</property>
		
		 <!-- 設置hibernate的映射文件 -->
		<mapping resource="entity/BookCard.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

  

      現在的項目:  

 

       現在的applicationContext.xml配置文件(使用的數據庫是SQL-server2008):

<?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"  
        xmlns:aop="http://www.springframework.org/schema/aop"   
        xmlns:context="http://www.springframework.org/schema/context"  
        xmlns:jee="http://www.springframework.org/schema/jee"  
        xmlns:tx="http://www.springframework.org/schema/tx"  
        xsi:schemaLocation="    
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd  
            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd  
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
            http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.2.xsd  
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd">
                
               <!-- 導入外部的文件,把數據庫的相關信息設置為一個變量,這樣有益於技術人員的安裝項目以及後期的部署。(對應項目外的 jdbcSql.properties 文件) -->
               <context:property-placeholder location="classpath:jdbcSql.properties" ignore-unresolvable="true"/>
            
            <bean id="myActionService" class="action.ActionService" scope="prototype"></bean>
       <bean id="myActionService" class="action.ActionService" scope="prototype"> <property name="ms" ref="myServiceImp"></property> </bean> <bean id="myServiceImp" class="services.MyServiceImp" scope="prototype"> <property name="md" ref="myDaoImp"></property> </bean> <bean id="myDaoImp" class="dao.MyDaoImp" scope="prototype"> <!-- 給daoImp的實現類中設置的sessionFactory成員屬性注入一個sessionFactory實例 --> <property name="sessionFactorySql" ref="mySessionFactorySql"></property> </bean> <!-- 定義一個sessionFactory的bean,使用spring來給sessionFactory來注入實例 --> <bean id="mySessionFactorySql" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <!-- 數據源包括:數據庫用戶名,密碼,這裡引用了下面的bean,為了看起來方便,我用了同一種字體顏色 --> <property name="dataSource" ref="myDataSourceSql"></property> <!-- 定義hibernate屬性 --> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">org.hibernate.dialect.SQLServer2008Dialect</prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> <prop key="hibernate.connection.autocommit">false</prop>   <!-- 自動生成表(根據實體類),如果這裡設置的是create的話,每次電腦開機後都會刪除這個表然後新創建一個表,所以這個時候之前的數據都會清空。-->
                <prop key="hibernate.hbm2ddl.auto">update</prop>
              </props>
            </property>

            <!-- 設置映射文件,這個映射問價指的是hbm.xml文件 -->
            <property name="mappingResources">
                 <list>
                   <value>entity/BookCard.hbm.xml</value>
                </list>
            </property>

        </bean>

<!-- 設置數據源(使用c3p0來設置數據庫源),需要使用spring來創建實例 --> <bean id="myDataSourceSql" class="com.mchange.v2.c3p0.ComboPooledDataSource">
         <!--這裡使用了變量來,目的是用來技術人員用於後面的安裝項目,選擇不同的數據庫需要數據庫的基本信息的修改。-->  <property name="driverClass" value="${jdbc.diver}"/> <property name="jdbcUrl" value="${jdbc.url}"/> <property name="user" value="${jdbc.user}"/> <property name="password" value="${jdbc.password}"/> <!--每300秒檢查所有連接池中的空閒連接 --> <property name="idleConnectionTestPeriod" value="300"></property> <!-- 最大空閒時間,900秒內未使用則連接被丟棄。若為0則永不丟棄 --> <property name="maxIdleTime" value="900"></property> <!--最大連接數 --> <property name="maxPoolSize" value="2"></property> </bean> </beans>

 

        現在的實體類的hbm.xml文件:(本例為:BookCard.hbm.xml),和之前的沒有差別:

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

    <class name="entity_name" table="tabel_name">

        <id name="entity_prop_name" type="integer" >
            <column name="column_name"></column>
            <generator class="native" />
        </id>
<property name="entity_prop_name" type="string">         <column name="column_name"></column>     </property> </class> </hibernate-mapping>

 

           

          新添加的一個數據庫信息的文件:(jdbcSql.properties),定義了數據庫的基本信息,但你的項目需要通過技術人員來部署的,可能因為具體情況不同需要修改數據庫信息,就可以直接在這裡修改即可。

 


      到這裡,ssh基本框架就建立好了,可以把這個框架加入你的項目進行具體的實戰,謝謝浏覽!

 

  

 

 

 

 

  

 

    

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved