Sung in Blog

                     一些技術文章 & 一些生活雜碎

          從網上找到的第一個struts連接數(shù)據庫的例子是在struts的config文件里面配置數(shù)據源的,即struts數(shù)據源管理器,結果用1.2的struts怎么都弄不好,為了這個問題費盡了周折,今天總算在struts的文檔中找到了答案。看來以后學習新東西還是要從英文文檔入手-_-


          理論上,商務羅基層應該包含數(shù)據鏈接的描述,包括數(shù)據庫鏈接。但是一些早期的程序員習慣于在調用(caller)中包含數(shù)據庫鏈接或者數(shù)據源實例。當你需要使用繼承的設計時,struts數(shù)據源管理器可以在你使你的action類能夠在你需要的時候生成這樣的數(shù)據源。


          注意:默認情況下數(shù)據庫鏈接是直接由商務邏輯的類來控制的,一般通過JNDI。struts數(shù)據源管理器應當僅由那些沒有獨立數(shù)據鏈接的業(yè)務邏輯的類繼承得到。如果可能,極力推薦使用標準的DAO模式,這樣業(yè)務邏輯層不需要知道任何數(shù)據庫的細節(jié)。數(shù)據源管理器在struts1.x中仍然保留并向下兼容,但是在后續(xù)版本中可能不再被支持。


          ?

          這還不是問題的關鍵,如果要用數(shù)據庫管理器,需要手動下載dbcp's BasicDataSource Commons DBCP.


          并且1.2版本之后為了更好的配合BasicDataSource插件和別的數(shù)據庫的執(zhí)行,先前版本的struts通用數(shù)據源被移除了,這就是為什么1.2的lib里面沒有struts-legacy.jar這個文件的原因了。


          以下是我成功的配置信息:





          ??? ????? property="driverClassName"
          ????? value="com.mysql.jdbc.Driver" />
          ??? ????? property="url"
          ????? value="jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=UTF-8" />
          ??? ????? property="username"
          ????? value="root" />
          ??? ????? property="password"
          ????? value="yourpass" />
          ??? ????? property="maxActive"
          ????? value="10" />
          ??? ????? property="maxWait"
          ????? value="5000" />
          ??? ????? property="defaultAutoCommit"
          ????? value="false" />
          ??? ????? property="defaultReadOnly"
          ????? value="false" />
          ??? ????? property="validationQuery"
          ????? value="SELECT COUNT(*) FROM db" />


          最后面那一行不是必需的,但是如果寫上的話返回的結果及至少要有一條記錄!


          mysql的jdbc也可以寫成org.gjt.mm.mysql.Driver這樣子。

          從網上找到的第一個struts連接數(shù)據庫的例子是在struts的config文件里面配置數(shù)據源的,即struts數(shù)據源管理器,結果用1.2的struts怎么都弄不好,為了這個問題費盡了周折,今天總算在struts的文檔中找到了答案。看來以后學習新東西還是要從英文文檔入手-_-


          理論上,商務羅基層應該包含數(shù)據鏈接的描述,包括數(shù)據庫鏈接。但是一些早期的程序員習慣于在調用(caller)中包含數(shù)據庫鏈接或者數(shù)據源實例。當你需要使用繼承的設計時,struts數(shù)據源管理器可以在你使你的action類能夠在你需要的時候生成這樣的數(shù)據源。


          注意:默認情況下數(shù)據庫鏈接是直接由商務邏輯的類來控制的,一般通過JNDI。struts數(shù)據源管理器應當僅由那些沒有獨立數(shù)據鏈接的業(yè)務邏輯的類繼承得到。如果可能,極力推薦使用標準的DAO模式,這樣業(yè)務邏輯層不需要知道任何數(shù)據庫的細節(jié)。數(shù)據源管理器在struts1.x中仍然保留并向下兼容,但是在后續(xù)版本中可能不再被支持。


          ?

          這還不是問題的關鍵,如果要用數(shù)據庫管理器,需要手動下載dbcp's BasicDataSource Commons DBCP.


          并且1.2版本之后為了更好的配合BasicDataSource插件和別的數(shù)據庫的執(zhí)行,先前版本的struts通用數(shù)據源被移除了,這就是為什么1.2的lib里面沒有struts-legacy.jar這個文件的原因了。


          以下是我成功的配置信息:





          ??? ????? property="driverClassName"
          ????? value="com.mysql.jdbc.Driver" />
          ??? ????? property="url"
          ????? value="jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=UTF-8" />
          ??? ????? property="username"
          ????? value="root" />
          ??? ????? property="password"
          ????? value="yourpass" />
          ??? ????? property="maxActive"
          ????? value="10" />
          ??? ????? property="maxWait"
          ????? value="5000" />
          ??? ????? property="defaultAutoCommit"
          ????? value="false" />
          ??? ????? property="defaultReadOnly"
          ????? value="false" />
          ??? ????? property="validationQuery"
          ????? value="SELECT COUNT(*) FROM db" />


          最后面那一行不是必需的,但是如果寫上的話返回的結果及至少要有一條記錄!


          mysql的jdbc也可以寫成org.gjt.mm.mysql.Driver這樣子。

          ]]>
          posted on 2005-09-19 16:28 Sung 閱讀(595) 評論(0)  編輯  收藏 所屬分類: Struts
          主站蜘蛛池模板: 绵竹市| 灵丘县| 宝应县| 青铜峡市| 乌兰县| 广汉市| 旌德县| 阿克| 肥城市| 志丹县| 汨罗市| 施甸县| 新闻| 梅河口市| 通河县| 五台县| 鸡泽县| 克拉玛依市| 嘉兴市| 屏南县| 崇义县| 泰安市| 五常市| 文山县| 贵州省| 东海县| 承德县| 青龙| 晋江市| 曲沃县| 柘城县| 沧源| 吉林省| 成都市| 霍州市| 武川县| 大冶市| 平邑县| 三亚市| 巩留县| 青阳县|