Struts 的 dataSources
<data-source> 元素用来配置应用所需要的数据源 , Java 语言提供了 javax.sql.DataSource 接口。所有的数据源必须实现该接口;
<dataSources> 包含零个,一个或多个 <data-source> 子元素 .<set-property> 元素用于设置数据源的各种属性。
在实现过程中,出现了以下问题:
1, 报找不到 org.apache.struts.action.actionServlet ,直接丢在工程的 lib 目录下,不起作用!后来就 build path 将他手动添加
2, 在报 java.lang.ClassNotFoundException : org.apache.commons.dbcp.BasicDataSource 将 commons-dbcp.jar 加入工程
再报 java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool 将 commons-pool.jar 加入工程
再报 java.lang.NoClassDefFoundError: org/apache/commons/collections/CursorableLinkedList
将 commons-collections.jar 加入工程
具体配置需要主要的地方
<data-sources>
<data-source type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="autoCommit" value="true" />
<set-property property="description" value="MySql Data Source" />
<set-property property="driverclassName" value="com.mysql.jdbc.Driver" />
<set-property property="url" value="jdbc:mysql://localhost:3306/strutsdata" />
<set-property property="maxcount" value="10" />
<set-property property="mincount" value="2" />
<set-property property="username" value="root" />
<set-property property="password" value="root" />
</data-source>
</data-sources>
总是报
org.apache.commons.dbcp.SQLNestedException : Cannot create JDBC driver of class '' for connect URL 'jdbc:mysql://localhost:3306/strutsdata'
和 javax.servlet.UnavailableException : Initializing application data source org.apache.struts.action.DATA_SOURCE
<set-property property=”driverClassName” value=”…..” />
driverClassName 必须写规范 , 区分大小写
还有 username 和 password 不区分大小写,但是必须写成 username 和 password
DataSource dataSource = getDataSource(request);
getDataSource(HttpServletRequest request, String args); 主要是用于在又多个<datasource></datasoruce>用来选择使用哪 个<datasource></datasource>
getDataSource(HttpServletRequest request,);