一:回顧三大框架(hibernate、struts2、Spring)知識點:
1.1:hibernate框架:
1.1.1:ORM思想:對象關係映射
1.1.2:核心配置文件中
(1)配置數據庫的信息 (2)hibernate的信息 (3)引入映射配置文件
1.1.3:注意:hibernate的核心配置文件
(1):如果單獨使用hibernate的框架,核心配置文件的名稱(hibernate.cfg.xml)和位置(src下面)固定。
(2) :如果hibernate和Spring整合的時候,hibernate核心配置文件名稱和位置沒有固定要求(可以在Spring的核心配置文件中配置)
1.1.4:hibernate映射配置文件
(1) 實體類和數據庫表映射關係——使用ORM思想
1.2:struts2框架:
1.2.1:Action的操作:
(1):Action的創建方式 (3種)
經常使用: 繼承類ActionSupport
(2):配置Action的訪問路徑
創建struts2的核心配置文件,這個文件名稱(struts.xml)和位置(src)是固定的。
(3):配置訪問Action的多個方法
一般使用通配符方式
(4):在Action中獲取表單提交的數據
①:獲取request對象
用ServletActionContext類獲取
②:屬性封裝
③:模型驅動(重點)
④:表達式封裝
(5):在Action中操作域對象
使用ServletActionContext類獲取域對象
(6):配置struts2的過濾器
1.2.2:值棧:
(1):線值棧放數據
set()、和push()兩個方法
定義變量,生成get方法
(2)從值棧獲取數據
在jsp頁面中使用struts2標籤+ognl獲取
<s:property>
<s:iterator>
1.2.3:攔截器
(1)aop(控制反轉)和責任鏈模式
(2)自定義攔截器
繼承:MethodFilterInterceptor
重寫類裏面的方法
配置攔截器和Action的關聯
1.3:Spring框架:
1.3.1:spring核心配置文件
(1)名稱和位置沒固定要求
(2)在Spring核心配置文件中引入schema約束
1.3.2:創建對象
(1)xml配置文件方式:<bean id="" class="" scope="" />
(2)註解方式:四個註解
1.3.3:注 入屬性(對象類型)
(1):xml配置文件方式
(2):註解方式:兩個註解
1.3.4:使用ServletContext對象和監聽器實現
(1)在服務器啓動的時候。加載spting配置文件,創建對象
(2)配置Spring的監聽器
(3)指定Spring配置文件位置
1.3.5:JDBCTemplate
HIbernateTemplate
1.3.6:Spring事物的配置:
xml配置文件方式
註解方式
二:SSH整合
2.1:整合思想
2.2:SSH的整合思想(具體事項)
兩個兩個框架進行整合(Spring是中間的框架)
2.2.1:Spring和hibernate進行整合
(1)把hibernate核心配置文件中的配置數據庫的部分,直接寫在Spring的核心配置文件中
(2)把sessionFactory對象交給Spring進行配置,所以第一次訪問很慢,指只創建一次(SessionFactory)
(3)就是在服務器啓動的時候創建sessionFactory對象,只創建一次,第一次訪問慢
2.2.2:Spring和struts2進行整合
(1)即使把struts2的Action交給Spring進行創建
<bean id="" class="" scope=""/>
三:具體實現整合
3.1:struts2 和 Spring進行整合
struts2的Action交給Spring進行配置
3.1.1:實現過程
(1)導入struts2 jar包(整合包........)
(2)創建Action
(3)創建struts2和核心配置文件,配置Action的訪問路徑
在src下面,民名稱是struts.xml
(4)配置struts2的過濾器
(5)導入Spring的jar包
(6)創建Spring的配置文件
①:引入約束(schema)
②:配置Spring的監聽器
③:指定Spring的配置文件的位置(所以Spring的配置文件名隨意起)
(7):把Action的交給Spring配置(重要)(上面6部都是和原來配置一樣)
① 在Spring中配置Action對象,在struts2 中也配置Action對象(這是有衝突)
②:解決衝突
就是在struts2.xml中不需要配置,其他不變,只需要把class改寫成bean的id值就好
3.2:hibernate和Spring的整合
把數據庫的配置信息交給Spring配置
把sessionFactory交給Spring進行配置
3.2.1:具體實現
(1)導入hibernate的jar包(必須導入一個Spring整合持久化層的jar包)
如果有jar包衝突,可以把低版本的刪除掉(這是我遇到的問題)
(2)搭建hibernate環境
① 創建實體類
② 配置實體類和數據庫的映射關係(映射配置文件)
③ 創建hibernate的核心配置文件
(3)把數據庫的配置在Spring中進行配置(採用c3p0配置數據庫的方式配置)
(4)把SessionFactory交給Spring進行配置
① 服務器啓動的時候,加載Spring配置文件,把配置文件中對象創建對象
② 把SessionFactory對象在Spring的配置文件中進行創建
③ Spring把創建SessionFactory對象的複雜操作,封裝到一個類中
(5):這裏說明
單獨使用hibernate 的時候,使用的是JdbcTemplate對象
整合的時候使用的是 HIbernateTemplate對象
① 在dao'裏面得到hibernateTemplate對象(注入進去)
②調用hibernateTemplate的方法
(6)配置事務
在使用事物的地方配置(一般都是service中)
四:HIbernateTemplate介紹
4.1:HIbernateTemplate對hibernate框架進行封裝
可以直接調用HibernateTemplate裏面的方法實現功能
4.2:HibernateTemplate中常用的方法
• Serializablesave(Object entity) :添加操作
• void update(Object entity) :修改操作
• void delete(Object entity) :刪除操作
• <T> T get(Class<T> entityClass,Serializable id) :根據id查詢
• <T> T load(Class<T> entityClass,Serializable id):根據id查詢
例子:
User user = hibernateTemplate.get(User.class,2);
• List find(String queryString, Object...values) :查詢操作的方法
第一個參數是:hql語句
第二個參數是 hql語句的參數值
Spring和分模塊開發
1.在Spring中配置多個內容,造成混亂,不利於維護
2.把Spring核心配置文件中的,一部分配置到單獨的配置文件中,在Spring的核心配置文件中引入單獨配置文件