在struts-config.xml中配置data-source注意事項:
<data-sources>
<!--
名稱:data-source
描述:data-source元素定義了具體的資料來源 屬性:
@key:當需要配置多個資料來源時,相當於資料來源的名稱,用來資料來源彼此間進行區別
@type:可以使用的資料來源實現的類,一般來自如下四個庫
-->
<data-source key="dataSource" type="org.apache.commons.dbcp.BasicDataSource">
<!--
名稱:set-property 屬性:
@driverClassName:驅動名稱
@url:資料庫url
@user:資料庫使用者
@password:資料庫密碼
@maxCount:最大資料來源串連數
@minCount:最小資料來源串連數
@autoCommit:是否自動認可 可選值:true/false
@description:資料來源描述
@readOnly:唯讀屬性 必須為false,否則不能進行插入修改操作
-->
<set-property property="driverClassName"
value="Oracle.jdbc.driver.OracleDriver" />
<set-property property="url"
value="jdbc:oracle:thin:@localhost:1521:orcl" />
<set-property property="username" value="scott" />
<set-property property="password" value="tiger" />
<set-property property="maxCount" value="20" />
<set-property property="minCount" value="5" />
<set-property property="autoCommit" value="true" />
<set-property property="readOnly" value="false" />
<set-property property="description" value="ds" />
</data-source>
</data-sources>
在**DAO檔案中代碼:
首先定義
private DataSource dataSource;
該類的構造方法:
public **DAO(DataSource dataSource)
{
this.dataSource=dataSource;
}
然後在該類的方法中使用dataSource.getConnection()方法獲得串連。
一定要注意千萬不要使用靜態方法
在action類中調用配置的datasource時有一下兩種方法:
方法一:ServletContext context = servlet.getServletContext();//獲得Struts中的設定檔屬性
DataSource dataSource = (DataSource) context.getAttribute("dataSource");
方法二:DataSource ds=this.getDataSource(request, "dataSource");
**DAO **dao=new **DAO(ds);
getDataSource(HttpServletRequest request,String key)方法就是在action中調用你配置好的data-source而已
當然,方法中的參數key,就是你配置的<data-source>的key
可以比較方法二比較簡潔哦!費了好大功夫才搞出來的,呼呼·····