在struts框架中配置SqlSserver数据源

在struts框架中配置SqlSserver数据源

运行环境:ecilpes3.2+Tomcat 5.5+SqlServer2000

呵呵,今天在热身时,又练习了下struts框架,想起第一次自己拿着书边看边练时首先遇到的问题就是在struts-config.xml文件里配置数据库了,下面与大家下自己的排错过程,思路有点乱还望大家批评指正!

常见问题javax.servlet.UnavailableException: Initializing application data source dataSource

1, 排除JDBC驱动的问题

2,定位问题原因 确定所用struts版本,struts版本不同连接数据库的配置参数就有所差异。

3, 排除连接数据库配置参数

-------------------------------------------------------------------
[color=red]为避免发生错误建议按以下步骤链接sql数据库[/color]

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。而struts-legacy.jar包需要自己下载(有需要的留言留下邮箱地址)。
将struts-legacy.jar也拷贝到tomcat5.x\common\lib里去,注意:这4个jar包除了要放在tomcat中,还要在web程序的module中的lib文件加中拷贝一份,还要在web程序的WebRoot\WEB-INF\lib中拷贝一份

2、 编写struts-config.xml文件,在里面加上数据源配置的一系列标记,例如:

以下为struts1.2版本

<!--开始定义数据源 -->
<data-sources >
<data-source key ="dataSource" type="org.apache.commons.dbcp.BasicDataSource">
<set-property value="com.microsoft.jdbc.sqlserver.SQLServerDriver"

property="driverClassName"/>
<set-property value="jdbc:Microsoft:sqlserver://localhost:1433;databasename=news_Data"

property="url"/>
<set-property value="sa" property="username"/>
<set-property value="123456" property="password"/>
</data-source>
</data-sources>
<!-- 数据源配置完毕 -->


这段标记比较简单,就不一一解释了,只要记住数据源名称就行了 ,比如我这里自己起的数据源名称是“dataSource”,在struts2.0中,部分标记的属性会有所不同

3、在Action中获得数据源连接.

现拿用户登陆为引介绍下数据源的链接
/**
* @see 登陆验证函数
* @param username
* @param password
* @author 耀阳科技
* @deprecated 修改时请注明修改起始位置及时间
* @version 1.0
*/
public class LoginBean {

//获得数据库连接
public Connection getDBConnection(DataSource db){

try{
return db.getConnection();
}catch(SQLException e){
System.out.println("获得数据库连接失败! "+ e.toString());
return null;
}
}

//检查用户身份是否合法
public Boolean checkUser (Connection conn,String tableName,String username,String

password)
throws SQLException{

Boolean returnresult = false;
PreparedStatement pstmt = null;
ResultSet rs = null;
if(conn != null){
//检索用户名和密码是否正确
String strsql = "select * form "+tableName+" where username = ?";
pstmt = conn.prepareStatement(strsql);
pstmt.setString(1, username);
rs = pstmt.executeQuery();
if(rs.next()){

if(password.equals(rs.getString(password))){

returnresult = true;
}else{
returnresult = false;
}
}else{
returnresult = false;
}
}
try{
if(rs!=null){
rs.close();
}
if(pstmt!=null){
pstmt.close();
}
if(rs!=null){
rs.close();
}
}catch(SQLException sqle){
sqle.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}

return returnresult;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值