*** struts中访问sqlserver数据库

在Struts中联接SQL Server数据库,期间遇到一些问题,与大家共享
本文基于的环境是,windows XP;Struts 1.2;Tomcat 5.0.28;JDK 1.4.2-09;SQL Server 2000个人版
1. 安装SQL Server数据库服务器,在安装的时候一般都是按照默认安装即可。在设置登录方式的时候,有两种选择方案。第一种:使用Windows身份验证;第二种:使用混合身份验证,即,用户即可以用Windows身份登录,也可以用SQL Server用户的身份访问数据库。本文在安装数据库时使用Windows身份验证。
2. 从微软的网站上下载JDBC Driver。有的朋友喜欢用JDBC-ODBC桥连接数据库,这并不是一种很正式的java中连接数据库的方法,使用这种方法连接数据库会丧失Java的跨平台性,即使在平常联系的时候也建议大家使用纯JDBC连接数据库。微软的下载JDBC Driver的网址为http://www.microsoft.com/downloads/details.aspx?familyid=86212D54-8488-481D-B46B-AF29BB18E1E5&displaylang=en。下载后直接运行程序安装即可。
3. 安装SQL Server JDBC后,通过点击【开始】à【所有程序】à【Microsoft SQL Server 2000 Driver for JDBC】可以阅读相关的说明文档。读者可以直接阅读Quick start一章,迅速连接数据库。
4. 本文所使用的Web服务器是Tomcat,因此可以将%JDBC Driver HOME%/lib目录下的*.jar文件,其实就是三个文件,mssqlserver.jar;msutil.jar;msbase.jar,拷贝到%TOMCAT HOME%/common/lib目录下,Tomcat在运行时会自动搜索这个目录下的文件。将三个库文件放到这个目录下能够保证Tomcat在运行时能够搜索到其中的文件。
5. 在Struts配置文件struts-config.xml文件中配置数据源。相关字段如下所示:
<data-sources>
<data-source key="StrutsDB" 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=Study"/>
<set-property property="username" value="sa"/>
<set-property property="password" value="jzy"/>
</data-source>
</data-sources>
相关字段的含义在第三步的说明文档中有详细的描述,在此简要介绍如下:
<data-sources>和<data-source>用来定义数据源,<data-sources>中可以有几个<data-source>。<data-source>中的key的值表示数据源的名称,type表示本数据源使用的类,一般都是固定的不需要改变。<set-property>用来设置驱动程序的类名,数据库连接url,登陆用户名和登陆用户密码。
在这里有一点需要注意,如果在url字符串后没有设置数据库的话,系统会默认选择master数据库,可以在url最后以分号分隔,并指定需要打开的数据库的名称,本文为Study数据库。由于sa用户是SQL Server中的保留用户,可以访问所有的数据库,因此,在实际开发的过程中,不应该使用sa作为登录用户,本文只是做一个演示。关于SQL Server用户即权限的设置笔者将另文介绍。
6. 在Struts应用中,在Action中使用如下的代码段访问数据库并发送SQL语句。本文只是演示,项目中应用的访问数据库的代码应该复杂的多
ServletContext context=servlet.getServletContext();
DataSource dataSource =(DataSource)context.getAttribute("StrutsDB");
String strSql = "insert into users values ('aa','bb')";
try{
connect = dataSource.getConnection();
Statement stmt = connect.createStatement();
stmt.execute(strSql);

}
catch(SQLException ex){
ex.printStackTrace();
}
finally{
if(connect!=null)
connect.close();
}
return true;
7. 重新部署应用,并重启Tomcat容器,使数据库配置生效。此时使用此应用并执行相应的操作,应该可以访问数据库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值