关于使用JDBC方式连接MSSQL数据库

今天学习数据库连接的使用,第一种方法是使用JDBC-ODBC方式连接,我依次把ODBC数据源创建好了,可最后写出的代码却不能实现预期效果。链接语句如下

        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    con=DriverManager.getConnection("jdbc:odbc:testDataBase","sa","123");

具体原因我也不太清楚,大概是一些路径错误了吧。后来我使用JDBC方式进行连接,代码如下

        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=testDataBase","sa","123");

发现成功连接了!鉴于两种连接方式的运行结果是一样的,而且大部分连接方式是使用JDBC方式,所以我也没深究JDBC-ODBC方式。

另外,这里要说的一点是,本来书上说JDBC API 4.0增强了DriverManager.getConnection方法,所以在导入sqljdbc4.jar后不需要Class.forName( )来注册或加载驱动程序。但我尝试了好久发现并不行,但后来经过查阅资料,本着试一试的心态,在代码前加入Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");才得到了预期结果。


附代码如下:

<%@ page contentType="text/html; charset=gb2312"%>
<%@ page import="java.sql.*" %>
<html>
<body>
 <% Connection con;
    Statement sql;
    ResultSet rs;
    try{
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=testDataBase","sa","123");
    sql=con.createStatement();
    rs=sql.executeQuery("SELECT * FROM userTable");
    out.print("<Table Border>");
    out.print("<Tr><td colspan=8 align=center>用户数据</td></tr>");
    out.print("<tr>");
    out.print("<td width=100>用户ID号</td>");
    out.print("<td width=50>用户名</td>");
    out.print("<td width=100>用户真实姓名</td>");
    out.print("<td width=50>年龄</td>");
    out.print("<td width=50>性别</td>");
    out.print("<td width=100>联系地址</td>");
    out.print("<td width=100>联系电话</td>");
    out.print("<td width=100>添加时间</td>");
    out.print("</tr>");
    while(rs.next()){
    out.print("<tr>");
    out.print("<td>"+rs.getLong(1)+"</td>");
    out.print("<td>"+rs.getString(2)+"</td>");
    out.print("<td>"+rs.getString(4)+"</td>");
    out.print("<td>"+rs.getInt("user_age")+"</td>");
    out.print("<td>"+rs.getString("user_sex")+"</td>");
    out.print("<td>"+rs.getString("user_address")+"</td>");
    out.print("<td>"+rs.getString("user_telephone")+"</td>");
    out.print("<td>"+rs.getString("add_time")+"</td>");
    out.print("</tr>");
    }
    out.print("</Table>");
    con.close();
    }catch(SQLException e1){
        out.print(e1);
    }
 %>
</body>
</html>


运行效果图:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值