环境:Tomcat6.x MyEclipse 9.01M1 Xp系统JDK 1.6 SQL Server 2005 数据库数据库驱动 : Microsoft SQL Server 2005 JDBC 驱动程序 .(这个很重要,因为2000和2005的驱动程序对应的数据库连接的JDBC代码也是不一样的。)2005驱动程序对应的Jar包是sqljdbc.jsr. 下载地址是:http://www.microsoft.com/downloads/zh-cn/details.aspx?FamilyID=E22BC83B-32FF-4474-A44A-22B6AE2C4E17 解压得到sqljdbc.jar文件,将其复制到tomcat安装目录下面的lib文件下面,另外也需要在你的项目下面导进去这个包。
步骤1:在Tomcat安装目录下面,找到conf文件夹下的 context.xml 文件,在<Context> </Context>添加:view plain <span style="font-size:18px;"><Resource name="jdbc/sqlserver"</span> view plain <span style="font-size:18px;"><span style="white-space:pre"> </span> auth="Container" type="javax.sql.DataSource" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://127.0.0.1:1434;dataBaseName=MyDatabase" username="sa" </span> view plain <span style="font-size:18px;"><span style="white-space:pre"> </span> password="123"</span> view plain <span style="font-size:18px;"> maxActive="500" </span> view plain <span style="font-size:18px;"><span style="white-space:pre"> </span> maxIdle="10"</span> view plain <span style="font-size:18px;"><span style="white-space:pre"> </span> maxWait="-1" /> </span>其中name是随便给的,但是为了见名知意,使用jdbc/sqlserver driverClassName里面是加载SQL Server2005的驱动。(要注意SQL Server2000的驱动程序是这样写的:com.microsoft . jdbc .sqlserver .SQLServer )
url中 1434表示数据库端口号,MyDatabase表示一个数据库实例,要注意 最前面的 jdbc.sqlserver ,这个和SQL Server2000 的驱动程序写法也不一样。
username passward 这个就不用说了,登录数据库用的账号密码。
maxActive 最大连接数maxIdle 最大等待连接数步骤2:JAVA源代码:
view plain <span style="font-size:18px;"> <span style="white-space:pre"> </span>Context initCtx = new InitialContext();Context ctx = (Context)initCtx.lookup("java:comp/env");Object obj = (Object)ctx.lookup("jdbc/sqlserver");DataSource ds = (DataSource)obj;conn = ds.getConnection(); </span>
其中:Context ctx = (Context)initCtx.lookup("java:comp/env");是不能改变的。
Object obj = (Object)ctx.lookup("jdbc/sqlserver");中jdbc/sqlserver要和在第一步中定义的name保持一致。
其他的Statement , ResultSet 的方法和普通连接的方法一样。
步骤3:也有的建议在项目下面的web.xml里面加入如下内容:
<resource-ref>
<description>db connection</description>
<res-ref-name>jdbc/sqlserver</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
其中<res-ref-name>jdbc/sqlserver</res-ref-name>要和在第一步中定义的name保持一致
但是步骤三可以省略。