今天看孙姐姐的<精通Struts>时发现Struts-config.xml配置oracle数据源时总出现can't find jdbc driver......的异常,百思不得其解,通过网上查阅资料,问题终于解决
软件环境:Struts 1.2.9+tomcat 5.0.16+oracle9i
驱动库:
下载必要的jar包。有3个包要下载(当然不能缺少oracle的那个JDBC包了)
commons-dbcp-1.2.zip
commons-pool-1.2.zip
struts-legacy-1.0.zip
commons-dbcp-1.2.zip
commons-pool-1.2.zip
struts-legacy-1.0.zip
Struts-coinfig.xml配置如下
<
data-sources
>
< data-source type ="org.apache.commons.dbcp.BasicDataSource" >
< set-property property ="driverClassName"
value ="oracle.jdbc.driver.OracleDriver" />
< set-property property ="url"
value ="jdbc:oracle:thin:@localhost:1521:database" />
< set-property property ="username" value ="system" />
< set-property property ="password" value ="manager" />
</ data-source >
</ data-sources >
< data-source type ="org.apache.commons.dbcp.BasicDataSource" >
< set-property property ="driverClassName"
value ="oracle.jdbc.driver.OracleDriver" />
< set-property property ="url"
value ="jdbc:oracle:thin:@localhost:1521:database" />
< set-property property ="username" value ="system" />
< set-property property ="password" value ="manager" />
</ data-source >
</ data-sources >
Action中excute代码
datasource
=
getDataSource(request);
conn = datasource.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery( " select * from address " );
rs.next();
System.out.println(rs.getString( 1 ));
conn = datasource.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery( " select * from address " );
rs.next();
System.out.println(rs.getString( 1 ));
以上是我正确调试后的代码,孙姐姐的书用的是struts 1.1 这其中差别比较大,也是产生错误的根源,下面我来分析一下
1.property名称变化
Struts 1.1 Struts 1.2
driverClass driverClassName
user username
2.strut1.2中已经没有
struts-legacy这个包了,所以需要自行添加