1. 程式人生 > >Spring 學習04

Spring 學習04

find 選擇 intercept 基於 參數 ssi bsp 維護 數據格式

一、上節內容回顧

1 基於aspectj的註解aop操作

2 spring的jdbcTemplate操作

(1)實現crud操作

- 添加、修改、刪除update方法

- 查詢

-- 查詢某個值 queryForObject

-- 查詢對象queryForObject

-- 查詢list query

3 spring配置連接池

(1)配置c3p0連接池

(2)dao註入jdbcTemplate

4 spring事務管理

(1)事務概念

(2)spring進行事務管理api

(3)spring進行事務配置

- 基於xml配置文件

- 基於註解方式

二、今天內容介紹

SSH三大框架整合

(1)struts2

(2)hibernate5.x

(3)spring4.x

三、回顧SSH框架知識點

Hibernate框架

1 hibernate核心配置文件

(0)orm思想

- 對象關系映射

(1)數據庫信息

(2)hibernate信息

(3)映射配置

(4)hibernate核心配置文件

- 如果單純使用hibernate框架,核心配置文件名稱 hibernate.cfg.xml和位置 src下面 固定的

- hibernate和spring整合時候,hibernate核心配置文件名稱和位置沒有固定要求的

2 hibernate映射配置文件

(1)實體類和數據庫表映射關系—使用orm思想

3 hibernate操作的步驟

(1)在spring框架對hibernate框架進行封裝,使用hibernateTemplate

Struts2框架

1 Action操作

(1)action創建三種方式

- 繼承類 ActionSupport

(2)配置action訪問路徑

- 創建struts.xml配置文件,這個文件名稱和位置固定 src下面的

(3)配置訪問action的多個方法

- 使用通配符方式配置

(4)在action獲取表單提交數據

- 獲取request對象

** 使用ServletActionContext類獲取

- 屬性封裝

- 模型驅動(重點)

- 表達式封裝

(5)在action操作域對象

- 使用ServletActionContext獲取域對象

(6)配置struts2的過濾器

2 值棧

(1)向值棧放數據

- set方法

- push方法

- 定義變量,生成get方法

(2)從值棧獲取數據

- 在jsp中使用struts2標簽+ognl獲取

- <s:property>

- <s:iterator>

3 攔截器

(1)aop和責任鏈模式

(2)自定義攔截器

- 繼承MethodFilterInterceptor

- 重寫類裏面的方法

- 配置攔截器和action關聯

Spring框架

1 spring核心配置文件

(1)名稱和位置沒有固定要求

(2)在spring核心配置文件中引入schema約束

2 創建對象

(1)xml配置方式:<bean id=”” class=”” scope=””/>

(2)註解方式:四個註解

3 註入屬性(對象類型屬性)

(1)xml配置方式:

(2)註解方式:兩個註解

- autowired

- resource

3 使用ServletContext對象和監聽器實現

(1)在服務器啟動時候,加載spring配置文件,創建對象

(2)配置spring的監聽器

(3)指定spring配置文件位置

4 jdbcTemplate

5 spring事務配置

(1)xml方式

(2)註解方式

SSH框架整合思想

1 三大框架應用在javaee三層結構

技術分享圖片

2 struts2框架和spring整合

(1)struts2的action在spring配置

技術分享圖片

3 spring框架和hibernate框架整合

(1)hibernate的sessionFactory交給spring配置

(2)把hibernate數據庫配置交給spring配置

技術分享圖片

四、整合struts2和spring框架

1 把struts2的action交給spring管理

2 實現過程

第一步 導入struts2的jar包

(1)導入用於整合的jar包

技術分享圖片

第二步 創建action

第三步 創建struts2核心配置文件,配置action

(1)位置在src下面,名稱是struts.xml

第四步 配置struts2過濾器

第五步 導入spring的jar包

第六步 創建spring配置文件

(1) 引入約束

(2) 配置spring監聽器

(3) 指定spring配置文件位置

技術分享圖片

技術分享圖片

第七步 把action交給spring進行配置(***)

技術分享圖片

(1)在spring配置action對象,在struts.xml中也配置action對象

(2)解決:

只需要在spring裏面配置action對象,不要在struts.xml中配置

技術分享圖片

五、Spring框架整合hibernate框架

1 把hibernate核心配置文件中配置數據庫信息,把數據庫信息在spring進行配置

2 把hibernate裏面的sessionFactory創建交給spring管理

具體實現

第一步 導入hibernate的jar包

(1)導入struts2和hibernate的jar包時候有jar沖突問題

在struts2裏面有jar包

技術分享圖片

在hibernate裏面有jar包

技術分享圖片

刪除低版本的jar包

(2)導入spring整合持久化層框架需要導入jar包

技術分享圖片

第二步 搭建hibernate環境搭建

1 創建實體類

2 配置實體類映射關系

3 創建核心配置文件

第三步 把hibernate核心配置文件數據庫配置,在spring進行配置

(1)把hibernate核心文件中數據庫配置去掉了,在spring配置

技術分享圖片

第四步 把hibernate的sessionFactory交給spring配置

(1)服務器啟動時候,加載spring配置文件,把配置文件中對象創建

(2)把sessionFactory對象創建在spring配置

(3)因為創建sessionFactory代碼不是new出來的,而是多行代碼實現的

技術分享圖片

(4)spring裏面針對上面情況,封裝類,配置類對象可以創建sessionFactory

技術分享圖片

第五步 在dao裏面使用hibernateTemplate

技術分享圖片

(1)在dao得到hibernateTemplate的對象

技術分享圖片

技術分享圖片

(2)調用hibernate模板裏面save方法添加

技術分享圖片

沒有配置事務,做操作時候,出現異常

技術分享圖片

第六步 配置事務

技術分享圖片

技術分享圖片

技術分享圖片

六、HibernateTemplate介紹

1 HibernateTemplate對hibernate框架進行封裝,

直接調用HibernateTemplate裏面的方法實現功能

2 HibernateTemplate常用的方法

  • Serializable save(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查詢

技術分享圖片

  • List find(String queryString, Object... values) :查詢操作的方法

技術分享圖片

(1)第一個參數是 hql語句

(2)語句參數值

技術分享圖片

技術分享圖片

七、SSH框架整合過程

第一步 導入jar包

技術分享圖片

第二步 搭建struts2環境

(1)創建action,創建struts.xml配置文件,配置action

(2)配置struts2的過濾器

第三步 搭建hibernate環境

(1)創建實體類

(2)配置實體類和數據庫表映射關系

(3)創建hibernate核心配置文件

- 引入映射配置文件

第四步 搭建spring環境

(1)創建spring核心配置文件

(2)讓spring配置文件在服務器啟動時候加載

- 配置監聽器

技術分享圖片

- 指定spring配置文件位置

技術分享圖片

第五步 struts2和spring整合

(1)把action在spring配置(action多實例的)

技術分享圖片

(2)在struts.xml中action標簽class屬性裏面寫 bean的id值

技術分享圖片

第六步 spring和hibernate整合

(1)把hibernate核心配置文件中數據庫配置,在spring裏面配置

技術分享圖片

(2)把hibernate的sessionFactory在spring配置

技術分享圖片

第七步 在dao裏面使用hibernateTemplate

(1)在dao註入hibernateTemplate對象

(2)在hibernateTemplate對象中註入sessionFactory

技術分享圖片

第八步 配置事務

技術分享圖片

出現異常時候,

第一行 異常信息

下面 cased by :

八、整合其他方式

1 spring整合hibernate時候,可以不寫hibernate核心配置文件

(1)把hibernate核心配置文件中,基本信息配置和映射引入都放到spring配置

技術分享圖片

九、Spring分模塊開發

1 在spring裏面配置多個內容,造成配置混亂,不利用維護

2 把spring核心配置文件中,一部分配置放到單獨的配置文件中,在spring核心配置文件中引入單獨配置文件

技術分享圖片

問題:

1 在struts2裏面和hibernate裏面都有jar包

技術分享圖片

技術分享圖片

Jar包沖突問題,刪除其中的一個,刪除低版本的jar包

2 如果把數據庫信息配置在hibernate裏面進行配置

(1)出現異常,事務裏面找不到數據源了

(2)數據庫配置在spring裏面配置

SSH練習功能

1 客戶管理

(1)crud操作

2 聯系人管理

(1)配置一對多操作

(2)添加聯系人

- 選擇所屬客戶

- struts2實現文件上傳

(3)聯系人列表

(4)修改聯系人

3 客戶拜訪管理

(1)多對多配置拆分成兩個有對多實現

4 綜合查詢

(1)多條件組合查詢

5 統計分析

(1)hibernateTemplate調用底層sql實現功能

6 其他知識

(1)svn版本控制工具使用

(2)代碼重構

- baseDao抽取

(3)插件:jquery easyui

- jquery ajax操作

- json數據格式

完成任務

1 搭建ssh整合環境

2 復習知識

(1)jquery ajax操作

(2)json數據格式

Spring 學習04