在MIS系统中,应用程序与数据库交互可以使用各种不同的连接方式,相比于以前把数据库连接写在某个JavaBean中,在配置文件中配置数据源,可能是个更好的选择,因为如果以后需要改变数据源,那么只要在配置文件进行简单的改写就可以了,而不用对程序本身的代码做任何改变,从而减少了应用程序后期维护升级的成本!
那么如何在struts框架中加入数据源的配置呢,非常简单,只要在struts-config.xml文件中写入数据源的配置信息即可,这里以在struts1.1框架中配置sqlserver数据源为例,做个简单的阐述(JBuilder2005+Tomcat 5.0+SqlServer2000):
1、 准备数据源配置所需要的jar文件
在struts框架中配置SqlServer数据源,除了需要连接sqlserver数据库的那三个jar包之外,还需要commons-collections-2.1.1.jar,commons-dbcp-1.2.1.jar,commons-pool-1.2.jar和struts-legacy.jar,其中前三个jar包在JBuilder2005的thirderpary\ jakarta-tomcat-5.0.27\common\lib中就可以直接找到,而struts-legacy.jar在JBuilder2005中的thirdparty\jakarta-struts-1.1-lib中也可以获得,并将struts-legacy.jar也拷贝到thirderpary\ jakarta-tomcat-5.0.27\common\lib里去,注意:这4个jar包除了要放在tomcat中,还要在web程序的module中的lib文件加中拷贝一份
2、 编写struts-config.xml文件,在里面加上数据源配置的一系列标记,例如:
<data-sources>
<data-source key="MySource" type="org.apache.commons.dbcp.BasicDataSource">
<set-property property="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver" />
<set-property property="url" value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=studb" />
<set-property property="username" value="sa" />
<set-property property="password" value=""/>
</data-source>
</data-sources>
这段标记比较简单,就不一一解释了,只要记住数据源名称就行了 ,比如我这里自己起的数据源名称是“MySource”,在struts2.0中,部分标记的属性会有所不同
3、 在Action中获得数据源连接
public class LoginAction extends Action {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest servletRequest,
HttpServletResponse servletResponse) {
LoginActionForm loginActionForm = (LoginActionForm) actionForm;
ServletContext context=servlet.getServletContext();
DataSource ds=(DataSource)context.getAttribute("MySource");
//将数据源连接作为参数传入某个业务逻辑所在的JavaBean中
LoginBean bean=new LoginBean(ds);
if(bean.isLogin(loginActionForm.getName(),loginActionForm.getPwd())){
return actionMapping.findForward("success");
}
return actionMapping.findForward("fail");
}
}
在LoginBean中,构造函数的关键代码如下:
public LoginBean(DataSource ds){
try {
con = ds.getConnection();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
到这里为止,struts中配置数据源已经搞定,如果因为机器原因导致运行时连接不成功,可以试着将sql直连改为桥连
转载于:https://blog.51cto.com/daimi5566/37462