1. 程式人生 > >《Spring及ssh整合》

《Spring及ssh整合》

import java.sql 與import com.mysql的區別

前者便於不同資料庫的切換 後者需要根據不同的資料庫做不同的Connection的強轉 因此,匯入依賴包有規範的包儘量使用規範的 不使用實現 編譯不互相依賴 即一個程式在編譯成class時 不需要等另外一個程式編譯完成才能繼續編譯 執行時才互相呼叫 第一代:使用反射解決依賴 雖然編譯時沒報錯 但執行時真正去呼叫的時候如果找不到相應的class就會報錯 但是 當更換所依賴的程式時 必須停止伺服器 找到原始碼 更換後還需要把整個專案再重新編譯一次 改進:用配置檔案 通過讀取配置檔案來進行反射 不用改原始碼重新編譯 使用類載入器讀取檔案的原因:第二種在web釋出時沒有src目錄 第一種類載入器 只要檔案放在類路徑下都能讀取

讀取配置檔案的方法 1.流讀取 2使用bundle

定義在方法中的變數不會有執行緒安全問題 方法結束後變數便清除 單例 用map實現 而且map查詢比連結串列方便 環繞通知

織入是一個動作 即在被代理的方法前後 執行攔截邏輯的動作 連線點 沒有被攔截的方法+被攔截的方法 切入點特殊的連線點 被攔截的方法 通知 攔截後執行的邏輯

通用切入點 必須配置在切面的前面 後置只有被攔截的方法正確執行後才會執行

事物的傳播行為 : required 針對增刪改 沒有事務則新建 有則加入事務 supports 針對查詢 有則加入 沒有就以非事務執行

ssh整合

Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]

錯誤原因:

提示說是資料來源配置錯誤,dialect,driver_class,url,username,password。檢查一下這五項

解決方法:

org.hibernate.dialect.MySQL5Dialect:新版本的mysql方言 org.hibernate.dialect.MySQLDialect :老版本的mysql方言 如果你配置的是老版本的方言,可以修改成新版本的方言

另外在檢查一下其他四項的配置是否有錯,單詞錯誤之類的 不要認為你的配置就一定是正確的,有時候不經意間寫錯單詞了

<!-- 第一部分: 配置資料庫資訊 必須的 --> <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> //資料庫是zz2017,問號後面的是設定一下字元編碼,我防止資料庫中文字元亂碼問題 <property name="hibernate.connection.url">jdbc:mysql:///zz2017?useUnicode=true&amp;characterEncoding=UTF8</property> <property name="hibernate.connection.username">root</property> //我資料庫密碼為空,故不寫 <property name="hibernate.connection.password"></property>

命令列模式安裝maven jar包

mvn install:install-file -Dfile=C:\Users\Administrator\Desktop\hibernate-c3p0-4.2.1.final.jar -DgroupId=org.hibernate -DartifactId=hibernate-c3p0 -Dversion=4.2.1 -Dpackaging=jar 為dao配置hibernateTemplate 為hibernateTemplate配置session Factory 注入sessionFactory 開始配置事務 配置事務 配置事務的通知 配置aop struts2 事務EJB spring的aop可以替代EJB的事務管理部分功能 是一個輕量級的框架